通过触摸外部(更智能的方式)关闭iOS键盘

时间:2018-11-20 11:21:36

标签: ios swift keyboard uitextfield

我有UIViewControllerUITextfield以及其他几个元素(几个子视图和按钮)。我想在UITextfield以外的地方轻按键盘。

我知道有一个答案Close iOS Keyboard by touching anywhere using Swift,但是如果用户点击viewController的子视图或按钮,这种方法将不起作用。 我可以为每个子视图和按钮添加类似的UITapGestureRecognizer,但是有解决此问题的更聪明的方法吗?

1 个答案:

答案 0 :(得分:0)

extension UIViewController{
    open override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        self.view.endEditing(true)
    }
}

此外,如果UIScrollView中有元素,也添加此方法:

extension UIScrollView {
    open override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        self.next?.touchesBegan(touches, with: event)
    }
}