【发布时间】:2016-12-14 09:01:42
【问题描述】:
当你按下回车键时如何让键盘消失有很多答案,但我希望回车键的功能仍然存在,以便用户可以换行,但我还需要一种方法来保持关闭键盘。
我考虑过的一些事情是关闭键盘的手势识别器,但这可能不直观。此处的想法和最佳实践值得赞赏。
在回答之前请注意,如果用户在 UITextView 外部单击以关闭任何键盘,但此特定 UITextView 占据整个屏幕,因此点击它不起作用,我已经有一个手势识别器。
我当前用于执行此操作的代码取自另一篇帖子,如下所示。
extension UIViewController {
func hideKeyboardWhenTappedAround() {
let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(UIViewController.dismissKeyboard))
view.addGestureRecognizer(tap)
}
func dismissKeyboard() {
view.endEditing(true)
}
}
我所要做的就是在我的视图控制器中调用这个函数,我希望在任何文本控件的任何地方点击都可以为我关闭键盘。到目前为止它运行良好,但单击控件本身仍然会产生键盘无法消失的问题。
对于占据全屏的 UITextView,关闭键盘的最佳方法是什么?
【问题讨论】:
-
我建议您在键盘上方添加带有“完成”按钮的工具栏。 (stackoverflow.com/questions/20192303/…)
-
同时你可以这样使用:
UIScrollViewKeyboardDismissModeInteractive -
工具栏是个很有趣的想法。
标签: ios swift keyboard swift3 uitextview