我通过实现函数textFieldShouldReturn
并在此函数内调用resignFirstResponder()
来按下返回键上的键盘。它工作得很好但是当我在这个函数中返回false
时,键盘仍然隐藏起来。现在我不明白,如果键盘隐藏在两种情况下,返回true
或false
的用途是什么?
答案 0 :(得分:7)
由于拨打resignFirstResponder
,键盘正在被解雇。它与textFieldShouldReturn
的返回值没有任何关系。
根据我的经验,textFieldShouldReturn
的返回值几乎没用。在绝大多数情况下,无论您返回true
还是false
都没有区别。
我在false
的所有用法中都返回testFieldShouldReturn
。如果您返回true
并且textFieldShouldReturn
的实施将第一响应者设置为UITextView
,则文本视图最终会添加换行符。从false
返回textFieldShouldReturn
可确保不会发生这种情况。但这是基于几年前iOS 4或5的经验。我不知道iOS的最新版本是否还会发生这种情况。
答案 1 :(得分:1)
textFieldShouldReturn
的返回值回答了一个不同的问题。如果文本字段具有控制事件editingDidEndOnExit
的操作,则那个将导致键盘关闭除非 textFieldShouldReturn
被实现为返回{{ 1}}。
答案 2 :(得分:0)
我尝试过 true 或 false ,键盘会关闭,这是代码:
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
return false
}
是否关闭键盘取决于“ textField.resignFirstResponder()”, 如果删除它,则无论是真还是假,键盘都不会消失。
答案 3 :(得分:0)
自从我在Native iOS上工作以来已经很长时间了。将近2年。我刚刚学习了Swift 5,并从基础知识着手研究了被遗忘的新部件。这是我观察到的。
func textFieldShouldEndEditing(_ textField: UITextField) -> Bool {
if searchTextField.text != "" {
return true
}
searchTextField.placeholder = "Type Something"
return false
}
在这里,当我按回车键而不输入单个字母时,键盘不会关闭。而是占位符文本更改以通知用户键入某些内容。从false
返回textFieldShouldEndEditing
的魔力。
如果我在至少输入一个字符后按了相同的返回键,它将直接关闭键盘。礼貌地从同一个true
返回一个textFieldShouldEndEditing
。
放置textField.resignFirstResponder()
时也没有发现任何差异,无论我返回true
还是false
。
结论:
true
关闭键盘。 false
停止释放键盘。