2011-01-23 80 views
3

我在我的應用程序中使用了UISearchBar,它既用作編輯字段,也用作搜索。所以當我想要消失鍵盤時,我必須使用UISearchBar中的取消按鈕,但是我不能在屏幕上顯示取消按鈕,那麼T如何在不使用取消按鈕的情況下使鍵盤消失。請幫助我,因爲我是iPhone應用程序開發新手。如何取消UISearchbar中的鍵盤?

在此先感謝!

回答

9

使用此:


[UISearchBar resignFirstResponder]; 

只是你所創建的對象的名稱替換詞的UISearchBar。

+5

,但實際上我需要重寫disablesAutomaticKeyboardDismissal因爲我使用的是UIModalPresentationPageSheet視圖。只要在這裏提及它,以防其他人發現這種情況很難像我那樣追蹤到。 – Bryan 2011-12-25 22:48:55

1

您是否在尋找可以解除鍵盤操作的方法或者如何以編程方式實際執行該操作?如果以編程的方式,那麼[UISearchBar resignFirstResponder]。如果您正在尋找一種可能的方式讓用戶達到這個目的,您可以讓鍵盤上的返回按鈕在按下時恢復其第一響應者狀態,或者將UIGestureRecognizer附加到您的視圖並進行設置,以便當用戶在外面點擊時鍵盤,這個鍵盤消失了。

1

簡單,所有你需要做的是從的UIS​​earchBar得到UITextField控件,然後設置的UITextField的委託任何委託,我想我有這個問題,將執行-(void) textFieldShouldReturn:(UITextField *)textField

-(void)viewDidLoad{  
    UIView * subView; 
    NSArray * subViews = [searchbar subviews]; 
    for(subView in subViews) 
    { 
     if([subView isKindOfClass:[UITextField class]]) 
     { 
      ((UITextField*)subView).delegate=self; 
      ((UITextField*)subView).returnKeyType=UIReturnKeyDone; 
      break; 
     } 
    } 
} 

-(BOOL) textFieldShouldReturn:(UITextField *)textField{ 
    [textField resignFirstResponder]; 
    return TRUE; 
}