我将ViewController
设置为UITextField
的委托。无论我尝试什么,我都无法在拨打textFieldShouldReturn
时隐藏键盘。
我的viewDidLoad
方法:
override func viewDidLoad() {
super.viewDidLoad()
self.view.addSubview(newModelField)
newModelField.delegate = self
self.presetTableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "presetCell")
//self.view.becomeFirstResponder()
}
和我的textFieldShouldReturn
方法:
func textFieldShouldReturn(textField: UITextField) -> Bool {
//UIApplication.sharedApplication().sendAction("resignFirstResponder", to:nil, from:nil, forEvent:nil)
if(textField.text! != ""){
items.append(textField.text!)
presetTableView.reloadData()
textField.text! = ""
//self.view.resignFirstResponder()
//self.addView.resignFirstResponder()
//textField.endEditing(true)
//self.view.endEditing(true)
UIApplication.sharedApplication().delegate?.window?!.endEditing(true)
return false
}
return true
}
您可以从我评论过的尝试中看到我尝试了大量不同的修复程序。我知道在调试print语句后调用了textFieldShouldReturn
。我无法弄清楚为什么键盘不会躲起来。
我尝试交换返回true和false语句。我尝试从故事板中设置委托。我尝试从故事板中删除textField,清理并重新添加。我尝试了对resignFirstResponder
和endEditing
的所有顶级调用,以及对文本字段和视图调用这些函数。
答案 0 :(得分:0)
要关闭键盘,请将resignFirstResponder消息发送到当前为第一个响应者的文本>字段。这样做会导致文本>字段对象结束当前编辑会话(委托>对象同意)并隐藏键盘。
yourTextField.resignFirstResponder()
答案 1 :(得分:0)
我尝试在textFiled上使用resignFirstResponder()并在我的视图上使用endEditing(true)但是我实现了这个小错误,实现了这个其他委托并返回false
func textFieldShouldEndEditing(textField: UITextField) -> Bool { //delegate method
return true
}