2014-09-11 44 views
0

嗨我正在開發小型IOS應用程序,我想在其中顯示搜索欄和它下面的表視圖。在用戶點擊外部時我想隱藏鍵盤。出於這個原因,我使用輕觸識別器,但因爲我的表視圖停止監聽行選擇。與UITapGestureRecognizer的表格視圖

這裏是我的代碼

//inside view did load 
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] 
           initWithTarget:self 
           action:@selector(dismissKeyboard)]; 

[self.view addGestureRecognizer:tap]; 

-(void)dismissKeyboard { 
    [_searchBar resignFirstResponder]; 
} 

但由於表鑑於此我行選擇得到禁止。那意味着didSelectRowAtIndexPath永遠不會被調用。任何人都有解決方案。需要幫忙。謝謝 。

回答

0

你應該實現UIGestureRecognizerDelegate並添加以下內容:

//內景做負載

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] 
           initWithTarget:self 
           action:@selector(dismissKeyboard)]; 
tap.delegate = self; 
[self.view addGestureRecognizer:tap]; 

// UIGestureRecognizerDelegate方法

#pragma mark UIGestureRecognizerDelegate methods 

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 
{ 
    if ([touch.view isDescendantOfView:yourTableView]) { 

     // Don't let selections of auto-complete entries fire the 
     // gesture recognizer 
     return NO; 
    } 

    return YES; 
} 
1

嘗試加入這一行的代碼,這將解決您的問題..

tap.cancelsTouchesInView = NO; 
0

有一個「搜索欄和搜索顯示控制器」,因爲聽起來像它會爲您提供完美的工具面板。 This是一個很好的教程,解釋如何實現它。這樣你就不會再有鍵盤問題了。

相關問題