Jos*_*han 3 keyboard uitextview ios swift swift3
当你按下返回键时,如何让键盘消失有很多答案,但我希望返回键的功能仍然存在,这样用户可以创建新行,但我还需要一种方法来关闭键盘.
我考虑过的一些事情是关闭键盘的手势识别器,但这可能不直观.这里的想法和最佳实践表示赞赏.
请在回答之前注意我已经有一个手势识别器,如果用户在UITextView外面点击以关闭任何键盘,但这个特定的UITextView会占用整个屏幕,因此点击它不起作用.
我目前使用的代码是从另一篇文章中获取的,如下所示.
extension UIViewController {
func hideKeyboardWhenTappedAround() {
let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(UIViewController.dismissKeyboard))
view.addGestureRecognizer(tap)
}
func dismissKeyboard() {
view.endEditing(true)
}
}
Run Code Online (Sandbox Code Playgroud)
我所要做的就是在我的viewcontroller中调用这个函数,我希望tap可以从任何文本控件中为我关闭键盘.到目前为止,它一直运行良好,但点击控件本身仍然会产生键盘不会消失的问题.
关闭占据全屏的UITextView键盘的最佳方法是什么?
我建议您在键盘上方添加"Done"按钮.有很多教程如何做到这一点,没有理由复制SO答案,只需检查:如何在iOS中为numpad键盘添加"完成"按钮
可能的解决方案
extension UITextView {
func addDoneButton() {
let keyboardToolbar = UIToolbar()
keyboardToolbar.sizeToFit()
let flexBarButton = UIBarButtonItem(barButtonSystemItem: .flexibleSpace,
target: nil, action: nil)
let doneBarButton = UIBarButtonItem(barButtonSystemItem: .done,
target: self, action: #selector(UIView.endEditing(_:)))
keyboardToolbar.items = [flexBarButton, doneBarButton]
self.inputAccessoryView = keyboardToolbar
}
}
Run Code Online (Sandbox Code Playgroud)
要使用它,从现在开始只需在任何UITextView上调用addDoneButton.
| 归档时间: |
|
| 查看次数: |
1192 次 |
| 最近记录: |