在UIViewController中收起键盘,除了调用相应控件的resignFirstResponder。例:
- 利用textField的代理方法
- (BOOL)textFieldShouldReturn:(UITextField *)textField{
if (![self.textField isExclusiveTouch]) {
[self.textField resignFirstResponder];
}
return YES;
}
还有另外的四种方法:
- 重载UIViewcontroller中的touchesBegin方法,然后在里面执行[self.view endEditing:YES]; ,这样单击UIViewController的任意地方就可以收起键盘。
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
[self.view endEditing:YES];
}
- 执行[[UIApplication sharedApplication] sendAction: @selector(resignFirstResponder to:nil from:nil forEvent:nil];,用于在获得当前UIViewController比较困难的时候用。
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
[[UIApplication sharedApplication]sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil];
}
- 全局收起键盘,执行 [[[UIApplication sharedApplication] keyWindow] endEditing:YES];
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
[[[UIApplication sharedApplication] keyWindow] endEditing:YES];
}