键盘完成键动作swift iOS不起作用
Posted
技术标签:
【中文标题】键盘完成键动作swift iOS不起作用【英文标题】:keyboard done key action swift iOS doesn't work 【发布时间】:2014-09-06 16:19:26 【问题描述】:我是 *** 的新手,我对新的 swift 代码有疑问。 我已经用“完成”自定义了键盘上的返回按钮,但是当我点击它时,什么都不会发生......我怎样才能在点击它时隐藏键盘? 我添加了一个代码(在此站点上找到),用于在您点击某处而不是键盘时隐藏键盘,但我无法通过点击“完成”按钮来自定义它...谢谢!
【问题讨论】:
【参考方案1】:你需要实现当你点击完成按钮时调用的委托方法:
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 和代码之间创建连接。请看我下面的帖子 我可能会在里面返回 false【参考方案2】:协议方法有新的签名(Swift 4.1)。即:
func textFieldShouldReturn(_ textField: UITextField) -> Bool
textField.resignFirstResponder()
return true
由于协议方法是可选的,使用错误的签名会默默地失败。
【讨论】:
我可能会在里面返回 false【参考方案3】:textField.delegate = self
可以替换为
这将在您的视图及其组件之间创建必要的连接,并使 textFieldShouldReturn 方法按预期工作。
【讨论】:
以上是关于键盘完成键动作swift iOS不起作用的主要内容,如果未能解决你的问题,请参考以下文章