【问题标题】:Dismiss the Keyboard in Swift via hitTest通过 hitTest 在 Swift 中关闭键盘
【发布时间】:2015-06-09 20:00:08
【问题描述】:

我在 UIView 类中的代码包含一个名为 titleInput 的 UITextField:

override func hitTest(point: CGPoint, withEvent event: UIEvent?) -> UIView? {
    // Code to Dismiss the Keyboard when Pressed Outside Text Field
    if !titleInput.pointInside(point, withEvent: event) {
        endEditing(true)
    }
    
    // Return Original hitTest Result as Usual
    return super.hitTest(point, withEvent: event)
}

我遇到了一个奇怪的错误。当我第一次启动应用程序时,一切都按预期工作,在 titleInput 之外触摸会关闭键盘。但是,如果我切换到不同的应用程序,它会刹车,而不是回到这个应用程序。返回应用程序后,单击键盘也会关闭键盘。使输入变得困难:)

知道为什么会发生这种情况,以及为什么它只是在离开应用程序然后又回到应用程序后才开始发生吗?另外,有没有更好的方法来做同样的事情。

【问题讨论】:

    标签: ios swift keyboard


    【解决方案1】:

    我建议这样做this way 而不是你正在尝试的。当按下回车键时,这只会关闭键盘。我意识到它在 Obj-C 中,但是方法调用几乎相同。

    【讨论】:

    • 是的,我已经做到了。实际上我正在使用返回键来添加新项目。因此,如果按下返回,则会触发保存功能。我想在其他任何地方添加点击以取消操作。
    【解决方案2】:

    我通常只是这样做

    override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
        view.endEditing(true)
        super.touchesBegan(touches, withEvent: event)
    }
    

    【讨论】:

      猜你喜欢
      • 2014-08-16
      • 1970-01-01
      • 2016-08-25
      • 1970-01-01
      • 2015-10-19
      • 2020-11-10
      • 2014-07-30
      • 1970-01-01
      • 2013-03-18
      相关资源
      最近更新 更多