Как вызвать метод didSelectRowAtIndexPath с UITapGestureRecognizer?

Я часами искал в 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;
}
6
задан hims056 30 July 2012 в 10:08
поделиться