如何在编辑UITextField时检测用户何时按下“返回”键盘按钮? 我需要这样做才能在用户按下“返回”按钮时解除键盘。
感谢。
答案 0 :(得分:207)
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return NO;
}
不要忘记在故事板中设置委托...
答案 1 :(得分:45)
不需要委托,这是一个单行程序:
- (void)viewDidLoad {
[textField addTarget:textField
action:@selector(resignFirstResponder)
forControlEvents:UIControlEventEditingDidEndOnExit];
}
遗憾的是,您无法在故事板中直接执行此操作(您无法将操作连接到在Storyboard中发出它们的控件),但您可以通过中间操作执行此操作。
答案 2 :(得分:5)
SWIFT 3.0
override open func viewDidLoad() {
super.viewDidLoad()
textField.addTarget(self, action: #selector(enterPressed), for: .editingDidEndOnExit)
}
在enterPressed()函数中放置了
之后的所有行为func enterPressed(){
//do something with typed text if needed
textField.resignFirstResponder()
}
答案 3 :(得分:4)
现在,您可以使用已发送的事件“在结束时退出”来完成故事板。
在视图控制器子类中:
@IBAction func textFieldDidEndOnExit(textField: UITextField) {
textField.resignFirstResponder()
}
在所需文本字段的故事板中:
答案 4 :(得分:4)
快捷键5
textField.addTarget(textField, action: #selector(resignFirstResponder), for: .editingDidEndOnExit)
答案 5 :(得分:1)
使用UITextFieldDelegate的快速版本:
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
resignFirstResponder()
return false
}
答案 6 :(得分:-1)
- (BOOL)textFieldShouldReturn:(UITextField *)txtField
{
[txtField resignFirstResponder];
return NO;
}
单击enter按钮后,将调用此委托方法。您可以从此委托方法捕获返回按钮。