6

GoogleとStackoverflowで何時間も検索して試しましたが、うまくいきませんでした。

その上にUITableViewtblDepartmentと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;
}
4

1 に答える 1

14

ジェスチャレコグナイザーcancelsTouchesInViewプロパティをNOに設定します。デフォルトではYESです。これにより、GRがジェスチャを認識した場合に、タッチが基になるビューに到達するのを防ぎます。

于 2012-07-30T02:57:10.113 に答える