如何自动退出键盘
How to resign keyboard automatically
我正在使用 IQKeyboardManager
。在我的 UI 中,我有一个文本视图,在它下面是一个文本字段。现在,当我点击文本视图时,键盘出现了。
当我点击文本视图下方的文本字段时,我调出了一个日期选择器。但是当我点击 textview 时出现的键盘仍然存在,因为我没有按下键盘上的 Done
按钮。
如果我点击我的文本字段,我怎样才能自动关闭在点击文本视图时出现的键盘而不需要按 Done
按钮..?
我试过这些但没用...
func textViewShouldEndEditing(_ textView: UITextView) -> Bool {
print("called")
myTextView.resignFirstResponder()
return false
}
func textFieldDidBeginEditing(_ textField: UITextField) {
print("called")
}
确保您分配了 textField.delegate = self
然后,如果您想在点击文本字段时关闭键盘,只需更正您的 textFieldDidBeginEditing
方法:
func textFieldDidBeginEditing(_ textField: UITextField) {
myTextView.resignFirstResponder()
textField.resignFirstResponder()
}
func textFieldShouldBeginEditing(textField: UITextField) -> Bool {
if textField == yourTextFieldName {
//You need to Resign both responders here.
yourTextView.resignFirstResponder()
yourTextFieldName.resignFirstResponder()
//show your date picker
return false
} else {
return true
}
}
两种方法的区别
“shouldBegin”的内容允许您对 return 值说“不”以禁止该操作。
“didBegin”表示它刚刚开始发生,您需要在那个时间点采取您需要采取的任何行动。
我正在使用 IQKeyboardManager
。在我的 UI 中,我有一个文本视图,在它下面是一个文本字段。现在,当我点击文本视图时,键盘出现了。
当我点击文本视图下方的文本字段时,我调出了一个日期选择器。但是当我点击 textview 时出现的键盘仍然存在,因为我没有按下键盘上的 Done
按钮。
如果我点击我的文本字段,我怎样才能自动关闭在点击文本视图时出现的键盘而不需要按 Done
按钮..?
我试过这些但没用...
func textViewShouldEndEditing(_ textView: UITextView) -> Bool {
print("called")
myTextView.resignFirstResponder()
return false
}
func textFieldDidBeginEditing(_ textField: UITextField) {
print("called")
}
确保您分配了 textField.delegate = self
然后,如果您想在点击文本字段时关闭键盘,只需更正您的 textFieldDidBeginEditing
方法:
func textFieldDidBeginEditing(_ textField: UITextField) {
myTextView.resignFirstResponder()
textField.resignFirstResponder()
}
func textFieldShouldBeginEditing(textField: UITextField) -> Bool {
if textField == yourTextFieldName {
//You need to Resign both responders here.
yourTextView.resignFirstResponder()
yourTextFieldName.resignFirstResponder()
//show your date picker
return false
} else {
return true
}
}
两种方法的区别
“shouldBegin”的内容允许您对 return 值说“不”以禁止该操作。
“didBegin”表示它刚刚开始发生,您需要在那个时间点采取您需要采取的任何行动。