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