Я часами искал в Google и Stackoverflow, пробовал их, но безуспешно.
У меня есть UITableView tblDepartment
и UISearchBar studentSearch
над ним.
Я добавляю UITapGestureRecognizer
, чтобы убрать клавиатуру из текстового поля studentSearch
, когда пользователи нажимают за пределами поля поиска :
UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKeyboard)];
[self.tblDepartment addGestureRecognizer:gestureRecognizer];
- (void)hideKeyboard
{
[studentSearch resignFirstResponder];
}
. После этого метод didSelectRowAtIndexPath:(NSIndexPath *)indexPath
больше не вызывается, когда я выбираю строку в tblDepartment
. Я знаю gestureRecognizer
причина.
Итак, как я могу скрыть клавиатуру и при этом разрешить пользователю выбирать строку?
Я попробовал этот код, но он не сработал:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
if ([touch.view isDescendantOfView:tblDepartment]) {
return NO;
}
return YES;
}