如果您想通过在键盘外部轻按来隐藏键盘,则可以使用此技巧(仅适用于Objective-C):
- (void)viewDidLoad { [super viewDidLoad]; // 在文本字段外点击时关闭键盘 UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self.view action:@selector(endEditing:)]; [tapGestureRecognizer setCancelsTouchesInView:NO]; [self.view addGestureRecognizer:tapGestureRecognizer]; }
对于Swift,将有更多代码:
override func viewDidLoad() { super.viewDidLoad() // 在文本字段外点击时关闭键盘 let tapGestureRecognizer: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(YourVCName.dismissKeyboard)) view.addGestureRecognizer(tapGestureRecognizer) } //识别到轻拍时调用此函数。 func dismissKeyboard() { //使视图(或其嵌入式文本字段之一)退出第一响应者状态。 view.endEditing(true) }
另一个Swift 3 / iOS 10示例
class vc: UIViewController { override func viewDidLoad() { super.viewDidLoad() // 加载视图后,通常从笔尖进行任何其他设置。 txtSomeField.delegate= self } } extension vc: UITextFieldDelegate { //在键盘外部触摸UI时,隐藏任何文本字段的键盘。 override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { self.view.endEditing(true) //隐藏键盘 } }