我目前正在学习Swift并在我的应用程序中使用了一些TextField。现在我希望用户在按下TextField中的返回键或点击屏幕上的任何位置时关闭键盘。
目前我在所有我不太喜欢的控制器中添加相同的代码。有没有办法使所有控制器/ TextField的行为与我上面描述的方式相同。
使用return:
关闭键盘func textFieldShouldReturn(textField: UITextField!) -> Bool {
textField.resignFirstResponder()
return true
}
点击屏幕时关闭键盘:
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
self.view.endEditing(true)
}
我想在所有控制器中使用,而不是每次都复制它。
答案 0 :(得分:2)
您可以继承UITextField
并创建自己的TextField。与向故事板添加UITextField
相比,只需将类设置为身份检查器中的文本字段类。
class YourTextField : UITextField, UITextFieldDelegate {
override init(){
super.init()
}
override init(frame: CGRect) {
super.init(frame: frame)
self.delegate = self
}
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
self.delegate = self
}
func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
}