下面是我按下返回键隐藏键盘的代码,但它不起作用。
class AddHall: UIViewController,UITextFieldDelegate {
@IBOutlet weak var hallname: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
hallname.delegate = self
}
func textFieldShouldReturn(hallname : UITextField!) -> Bool {
hallname.resignFirstResponder()
return true
}
}
答案 0 :(得分:1)
实现正确的UITextField Delegate方法。
<强>替换强>
func textFieldShouldReturn(hallname : UITextField!) -> Bool {
hallname.resignFirstResponder()
return true
}
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
答案 1 :(得分:1)
委托方法textFieldShouldReturn
用于指定是否允许文本字段失去焦点 - 在 UITextField即将失去焦点之前,它只会被调用。你应该只对她进行一些检查,但不要忽视任何事情。
您寻求的是对返回键做出反应,然后关闭键盘。这是通过连接DidEndOnExit
操作来完成的(请注意:还有许多其他具有相似名称的事件,您必须完全使用此操作),然后辞职第一响应者。
然后您可以删除textFieldShouldReturn
(除非您在此处执行其他检查,而不是简单地返回true
)。
答案 2 :(得分:0)
像这样更改你的代码。您没有使用正确的委托方法。
func textFieldShouldReturn(textField : UITextField!) -> Bool {
textField.resignFirstResponder()
return true
}
答案 3 :(得分:0)
您必须为TextField Delegate
使用正确的函数名称使用此:
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}