【问题标题】:Why use resignFirstResponder()为什么使用 resignFirstResponder()
【发布时间】:2015-07-17 17:03:35
【问题描述】:

我是使用 Swift 开发 stackoverflow 和 iOS 应用程序的新手。当我想在我的应用程序中关闭键盘时,我连接 viewcontroller.swift 中的 uitextfield 并使用事件 DidEndOnExit 创建一个操作。然后在那个方法中我调用 self.resignFirstResponder() 方法。这是每个人都说我应该做的。这是我在视图控制器中的代码

 @IBAction func dismissKeyboard(sender: AnyObject) {

        self.resignFirstResponder()

}

现在,当我搜索此方法的用途时,我发现当我选择文本字段时,键盘会出现,并且该文本字段成为第一响应者,通过调用此方法,它会退出第一响应者并且键盘消失。问题是,如果我不使用这种方法,键盘仍然会消失。我需要做的就是使用 DidEndOnExit 事件创建操作。我在这里错过了什么吗?这是没有方法的代码;

 @IBAction func dismissKeyboard(sender: AnyObject) {

        //self.resignFirstResponder()

}

如果有人能启发我,那就太好了! :)

提前致谢!

【问题讨论】:

  • 第一响应者是 UITextField 而不是键盘。你有textFieldShouldReturn() 函数吗?
  • 是的,你是对的。我没有写对。我将编辑我的问题。不,我没有 textFieldShouldReturn()。
  • stackoverflow.com/questions/274319/… 看起来有DidEndOnExit 事件与resignFirstResponder 基本相同

标签: ios swift keyboard


【解决方案1】:

也许您在界面构建器中启用了“自动启用返回键”?

【讨论】:

    【解决方案2】:

    唯一能想到的是您有一个自动启用的返回键。您还说它没有启用,所以它可能与 ViewController 中的其余代码有关。另外,请检查您可能一直在使用的任何属性以使其正常工作,就像您说您是 swift 新手一样,所以您可能正在玩弄让键盘关闭。

    有时 Xcode 可能有点问题,如果您无法解决问题或得到正确答案,我的建议是创建一个新项目并仅添加键盘关闭代码。

    我希望这可以帮助您解决没有看到其余代码,屏幕截图等的问题。所以我只能提供我的想法或过去的经验!

    祝你好运!在 swift 中享受有趣的编程。

    【讨论】:

    • 首先感谢您的努力。我创建了一个新项目,唯一的代码是我最初提供的代码。我使用 Xcode 6.4,如果有人可以创建一个新项目并添加一个文本字段,然后使用 didendonexit 事件创建一个操作以便我们可以检查这一点,那就太好了。不需要截图或更多信息,因为没有其他东西可以显示!!! :)
    • 结果还是一样?有趣,你试过重置你的模拟器吗?也许,这是一个错误,无论如何我现在会检查它,让你知道我得到了什么!
    • 你试过这种方式吗?没有 self.resignFirstResponder()?
    • 是的,我有,但我没有遇到与您相同的问题。键盘将保持原样。
    • 我不明白这个......这很奇怪。我认为这可能是一个 Xcode 错误?我会继续寻找这个一段时间。我可以上传一个 youtube 视频...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-15
    相关资源
    最近更新 更多