参考:http://blog.csdn.net/iosevanhuang/article/details/8830499
点击底部空白区域隐藏键盘
1.先给tableView注册手势。
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tap:)];
tap.delegate = self;
[self.tableView addGestureRecognizer:tap];
2.修改代理方法。
UITapGestureRecognizer截获了touch事件,导致didSelectRowAtIndexPath方法无法响应。
添加协议<UIGestureRecognizerDelegate>
重写- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 方法
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
if ([NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"] || [NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewLabel"] )
// Don't let selections of auto-complete entries fire the
// gesture recognizer
return NO;
}
return YES;
}
3.添加点击调用方法,隐藏键盘
- (void)tap:(UIGestureRecognizer *)gestureRecognizer
{
[self.searchBar resignFirstResponder];
}
修改方法二
重载UIViewController中的touchesBegin方法,然后在里面执行[self.view endEditing:YES];,这样单击UIViewController的任意地方,就可以收起键盘。