如何在UITextField返回键上添加操作?

raz*_*deb 83 iphone objective-c uitextfield ios swift

我的视图中有一个按钮和文本文本字段.当我点击文本字段时,键盘出现,我可以在文本字段上书写,我也可以通过添加以下命令来点击按钮来解除键盘:

[self.inputText resignFirstResponder];
Run Code Online (Sandbox Code Playgroud)

现在我想启用键盘的返回键.当我按下键盘时,键盘会消失,会发生一些事情.我怎样才能做到这一点?

And*_*der 173

确保"self"订阅UITextFieldDelegate并初始化inputText:

self.inputText.delegate = self;
Run Code Online (Sandbox Code Playgroud)

将以下方法添加到"self":

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    if (textField == self.inputText) {
        [textField resignFirstResponder];
        return NO;
    }
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

或者在Swift中:

func textFieldShouldReturn(textField: UITextField) -> Bool {
    if textField == inputText {
        textField.resignFirstResponder()
        return false
    }
    return true
}
Run Code Online (Sandbox Code Playgroud)


Fan*_*ing 9

随着swift 3.0的扩展风格

首先,为您的文本字段设置委托.

override func viewDidLoad() {
    super.viewDidLoad()
    self.inputText.delegate = self
}
Run Code Online (Sandbox Code Playgroud)

然后UITextFieldDelegate在视图控制器的扩展名中符合

extension YourViewController: UITextFieldDelegate {
    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        if textField == inputText {
            textField.resignFirstResponder()
            return false
        }
        return true
    }
}
Run Code Online (Sandbox Code Playgroud)


Mal*_*ion 6

虽然其他答案正常工作,但我更喜欢执行以下操作:

在 viewDidLoad() 中,添加

self.textField.addTarget(self, action: #selector(onReturn), for: UIControl.Event.editingDidEndOnExit)

并定义函数

@IBAction func onReturn() {
    self.textField.resignFirstResponder()
    // do whatever you want...
}
Run Code Online (Sandbox Code Playgroud)