键盘完成键动作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不起作用的主要内容,如果未能解决你的问题,请参考以下文章

videojs ios 点击暂停键不起作用?

Swift:通过 NSNotificationCenter 的键盘观察器不起作用

socket.io swift 在真实设备上不起作用

IntelliJ IDEA - 键盘右键单击不起作用

手势识别器不起作用。执行下方元素的操作 - SWIFT

UIButton动作不起作用ios