TableView中难免会在cell里添加TextField或者TextView,但是发现在添加
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
[self.view endEditing:YES];
}
代码后并不起作用。
原因是在点击事件已经在TableView上被响应了,换成下面的方法都OK。
点击收起键盘:
UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKeyBoard)];
tapGestureRecognizer.cancelsTouchesInView = NO;//默认为YES,会吸收didSelect事件
[self.tableView addGestureRecognizer:tapGestureRecognizer];
滑动收起键盘:
self.tableView.keyboardDismissMode = UIScrollViewKeyboardDismissModeOnDrag;
当然,方法还有很多,只是其中一个思路。