當(dāng)tableview其中一個(gè)行有輸入框,點(diǎn)擊tableView的其他地方又要隱藏鍵盤,如果只是在tableView點(diǎn)擊行時(shí)隱藏,那么當(dāng)行比較少的時(shí)候,點(diǎn)擊空白區(qū)域的話就不會(huì)隱藏了,怎么辦呢?用以下辦法可以達(dá)到我們的要求:
在 UITableView 上加手勢(shì)
UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKeyboard)];
[self.tableView addGestureRecognizer:gestureRecognizer];
- (void) hideKeyboard {
[textField resignFirstResponder];
}
如果只是這樣,手勢(shì)會(huì)覆蓋點(diǎn)擊tableView中cell時(shí)的事件,所以要這樣做:
UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKeyboard)];
gestureRecognizer.numberOfTapsRequired = 1;
gestureRecognizer.cancelsTouchesInView = NO;
[self.tableView addGestureRecognizer:gestureRecognizer];
- (void) hideKeyboard {
[textField resignFirstResponder];
}
這樣tableView的手勢(shì)和cell的點(diǎn)擊事件是獨(dú)立的了,不會(huì)影響你 tableview 上的 action 。