Я искал часы в Google и Stackoverflow, пробовал их, но не повезло.Как вызвать метод didSelectRowAtIndexPath с UITapGestureRecognizer?
У меня есть 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;
}
Не удалось удалить распознаватель жестов и отменить первый ответчик из 'tableView: didSelectRowAtIndexPath:' вместо этого? – dasblinkenlight
Попробуйте удалить распознаватель жестов после 'resignFirstResponder' – ohr
@dasblinkenlight: Спасибо за ваш комментарий. «TblDepartment» имеет около 7 строк, а клавиатура перекрывает их при отображении. Я хочу, чтобы пользователи могли выбирать строки, если они не хотят искать. Поэтому, когда они выходят за пределы поисковой системы, клавиатура отклоняется, и они могут выбирать нижние строки. –