点击UITextField以外的区域,实际是点击了当前View,当前View捕获点击事件,可它不会传递该事件
这种简单可用办法:addGestureRecognizer
class ViewController: UIViewController {
@IBOutlet weak var username: UITextField!
@IBOutlet weak var password: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
//注册点击事件
self.view.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(handleTap)))
}
//点击空白处关闭键盘方法
func handleTap(sender: UITapGestureRecognizer) {
if sender.state == .ended {
print("收回键盘")
self.username.resignFirstResponder()//username放弃第一响应者
self.password.resignFirstResponder()//password放弃第一响应者
}
sender.cancelsTouchesInView = false
}
}其它事件
UIGestureRecognizer //类用于手势识别,它的子类有主要有六个分别是: UITapGestureRecognizer //(轻击一下) UIPinchGestureRecognizer //(两指控制的缩放) UIRotationGestureRecognizer //(旋转) UISwipeGestureRecognizer //(滑动,快速移动) UIPanGestureRecognizer //(拖移,慢慢移动) UILongPressGestureRecognizer //(长按)