如何使用UITapGestureRecognizer调用didSelectRowAtIndexPath方法?

Phu*_*yen 6 xcode uitableview ios uitapgesturerecognizer

我在谷歌和Stackoverflow上搜索了几个小时,尝试过但没有运气.

我上面有一个UITableView tblDepartment和一个UISearchBar studentSearch.

当用户点击搜索框外部时,我添加了一个UITapGestureRecognizerstudentSearch文本框中关闭键盘:

UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKeyboard)];
[self.tblDepartment addGestureRecognizer:gestureRecognizer];

- (void)hideKeyboard
{
    [studentSearch resignFirstResponder];
}
Run Code Online (Sandbox Code Playgroud)

之后,didSelectRowAtIndexPath:(NSIndexPath *)indexPath当我选择行时,不再调用该方法tblDepartment.我知道gestureRecognizer是因为.

那么,如何隐藏键盘并仍然允许用户选择行?

我试过这段代码,但它不起作用:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
    if ([touch.view isDescendantOfView:tblDepartment]) {
        return NO;
    }
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

Psy*_*cho 14

将手势识别器cancelsTouchesInView属性设置为NO,默认情况下为YES,如果GR识别其手势,它会阻止触摸到达基础视图.