如何通过按设备上的返回键来关闭键盘?我知道如何解除键盘,但不是在使用UITextView时:
resignFirstResponder
我试过这个,但它不起作用:
self.messageTextView.delegate = self
使用此功能:
func messageTextViewShouldReturn(textView: UITextView) -> Bool
{
self.messageTextView.resignFirstResponder()
return true
}
答案 0 :(得分:3)
请记住将UITextDelegate添加到ViewDidLoad()
中 func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool {
if text == "\n"
{
textView.resignFirstResponder()
return false
}
return true
}
答案 1 :(得分:1)
快速5
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
txtCity.resignFirstResponder()
return true
您可能还希望视图控制器遵守UITextFieldDelegate协议,并指定视图控制器是文本字段的委托
class ViewController: UIViewController, UITextFieldDelegate {
和
override func viewDidLoad() {
super.viewDidLoad()
txtCity.delegate = self
}
答案 2 :(得分:1)
快捷键5
与可以使用IBAction的textField不同,没有可用于文本视图的操作。
创建您的textViewOutlet
如果使用表格视图: 确定textView行的位置:
let textViewIndex = IndexPath(row: 0, section: 1)
然后(_:didSelectRowAt :)中的textView以外的任何行都将关闭键盘
if indexPath != textViewIndex {
textViewOutlet.resignFirstResponder()
}
如果不使用表视图:在SB视图控制器中,将UITapGestureRecognizer拖到视图中。然后通过控制将其拖动到您的视图,从该Tap Gesture Recognizer创建IBAction。在操作中,将键盘从textViewOutlet中撤消:
@IBAction func tapGestureRecognizer(_ sender: Any) {
notesField.resignFirstResponder()
}