键盘完成键操作在Swift iOS中无法正常工作。

36

我是Stack Overflow的新手,我在使用Swift编写代码时遇到了问题。 我已经将键盘上的返回按钮自定义为“完成”,但当我点击它时,什么也不会发生...如何在点击时隐藏键盘? 我已经添加了一段代码(在这个网站上找到的),可以在你点击键盘以外的地方时隐藏键盘,但我无法将它与点击“完成”按钮自定义...非常感谢!

3个回答

99

您需要实现委托方法,该方法在您点击完成按钮时被调用:

func textFieldShouldReturn(_ textField: UITextField) -> Bool {
    textField.resignFirstResponder()
    return true
}
你还需要符合 UITextFieldDelegate 协议:
// I assume you override UIViewController class. If not add UITextFieldDelegate to your class
class MyViewController: UIViewController, UITextFieldDelegate

最后一步是设置你的类成为一个文本字段委托:

textField.delegate = self

你也可以使用Xcode来创建UI和代码之间的连接。请查看我下面的帖子。 - Stephane Paquet
我可能会在那里返回 false - Fattie

11
textField.delegate = self

可以被替换为 enter image description here

这将创建视图、其组件之间必要的连接,并使textFieldShouldReturn方法按预期工作。


1
协议方法有新的签名(Swift 4.1)。例如:
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
    textField.resignFirstResponder()
    return true
}

由于协议方法是可选的,使用错误的签名将会默默失败。

我可能会在那里返回 false - Fattie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接