【问题标题】:keyboard done key action swift iOS doesn't work键盘完成键动作swift iOS不起作用
【发布时间】:2014-09-06 16:19:26
【问题描述】:

我是 stackoverflow 的新手,我对新的 swift 代码有疑问。 我已经用“完成”自定义了键盘上的返回按钮,但是当我点击它时,什么都不会发生......我怎样才能在点击它时隐藏键盘? 我添加了一个代码(在此站点上找到),用于在您点击某处而不是键盘时隐藏键盘,但我无法通过点击“完成”按钮来自定义它...谢谢!

【问题讨论】:

    标签: ios keyboard return swift action


    【解决方案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 方法按预期工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-13
      • 2016-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-02
      • 2021-09-06
      相关资源
      最近更新 更多