我有UIViewController
和UITextfield
以及其他几个元素(几个子视图和按钮)。我想在UITextfield
以外的地方轻按键盘。
我知道有一个答案Close iOS Keyboard by touching anywhere using Swift,但是如果用户点击viewController的子视图或按钮,这种方法将不起作用。
我可以为每个子视图和按钮添加类似的UITapGestureRecognizer
,但是有解决此问题的更聪明的方法吗?
答案 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)
}
}