UITextField - 捕获返回按钮事件

Ily*_*ski 94 iphone cocoa-touch uitextfield backspace ios

如何在编辑UITextField时检测用户何时按下"返回"键盘按钮?我需要这样做才能在用户按下"返回"按钮时关闭键盘.

谢谢.

Ily*_*ski 207

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder];
    return NO;
}
Run Code Online (Sandbox Code Playgroud)

不要忘记在故事板中设置委托...

在此输入图像描述

  • 确保将视图控制器设置为文本字段的委托. (47认同)
  • 不知何故,这根本不起作用.未捕获回车键. (2认同)

mxc*_*xcl 48

代表团不是必需的,这是一个单行:

- (void)viewDidLoad {
    [textField addTarget:textField
                  action:@selector(resignFirstResponder)
        forControlEvents:UIControlEventEditingDidEndOnExit];
}
Run Code Online (Sandbox Code Playgroud)

遗憾的是,您无法在故事板中直接执行此操作(您无法将操作连接到在Storyboard中发出它们的控件),但您可以通过中介操作执行此操作.


drp*_*elo 6

SWIFT 3.0

override open func viewDidLoad() {
    super.viewDidLoad()    
    textField.addTarget(self, action: #selector(enterPressed), for: .editingDidEndOnExit)
}
Run Code Online (Sandbox Code Playgroud)

在enterPressed()函数中放置你所追求的所有行为

func enterPressed(){
    //do something with typed text if needed
    textField.resignFirstResponder()
}
Run Code Online (Sandbox Code Playgroud)


Bla*_*ley 6

现在,您可以使用已发送的事件“退出时结束”在情节提要中执行此操作。

在您的视图控制器子类中:

 @IBAction func textFieldDidEndOnExit(textField: UITextField) {
    textField.resignFirstResponder()
}
Run Code Online (Sandbox Code Playgroud)

在情节提要中,找到所需的文本字段:

在此处输入图片说明


Ted*_*Ted 6

斯威夫特 5

textField.addTarget(textField, action: #selector(resignFirstResponder), for: .editingDidEndOnExit)
Run Code Online (Sandbox Code Playgroud)


Leo*_*bus 5

使用 UITextFieldDelegate 的 Swift 版本:

func textFieldShouldReturn(_ textField: UITextField) -> Bool {
    resignFirstResponder()
    return false
}
Run Code Online (Sandbox Code Playgroud)