【发布时间】:2014-09-06 16:19:26
【问题描述】:
我是 stackoverflow 的新手,我对新的 swift 代码有疑问。 我已经用“完成”自定义了键盘上的返回按钮,但是当我点击它时,什么都不会发生......我怎样才能在点击它时隐藏键盘? 我添加了一个代码(在此站点上找到),用于在您点击某处而不是键盘时隐藏键盘,但我无法通过点击“完成”按钮来自定义它...谢谢!
【问题讨论】:
标签: ios keyboard return swift action
我是 stackoverflow 的新手,我对新的 swift 代码有疑问。 我已经用“完成”自定义了键盘上的返回按钮,但是当我点击它时,什么都不会发生......我怎样才能在点击它时隐藏键盘? 我添加了一个代码(在此站点上找到),用于在您点击某处而不是键盘时隐藏键盘,但我无法通过点击“完成”按钮来自定义它...谢谢!
【问题讨论】:
标签: ios keyboard return swift action
你需要实现当你点击完成按钮时调用的委托方法:
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
【讨论】:
协议方法有新的签名(Swift 4.1)。即:
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
由于协议方法是可选的,使用错误的签名会默默地失败。
【讨论】:
textField.delegate = self
可以替换为
这将在您的视图及其组件之间创建必要的连接,并使 textFieldShouldReturn 方法按预期工作。
【讨论】: