2014-02-12 17 views
0

我正在使用searchBar,其中clickBar的取消按鈕單擊時應刪除鍵盤。我嘗試使用resignFirstResponder,但那根本不工作。有沒有人有任何其他出路?當單擊searchBar的取消按鈕時,它應該從屏幕上刪除鍵盤

+0

你有沒有在''嘗試resignFirstResponder' - (空)searchBarCancelButtonClicked:(*的UISearchBar)searchBar'委託方法'UISearchBar'? – Akhilrajtr

+0

是的,我已經嘗試過。仍然不工作 – user3202087

+0

你可以在'UISearchBar'委託方法中顯示代碼嗎? – Akhilrajtr

回答

0

使用這條線,它會幫助你

[self.view endEditing:YES]; 
+0

b!擊敗我一拳:) – random

0

沒有在OP任何代碼,試試這個:

[self.view endEditing:YES]; 

你需要一個/所有的這些方法:

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText { 
    if (searchText.length == 0) { 
     [searchBar resignFirstResponder]; 
    } 
} 

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar { 
    [searchBar resignFirstResponder]; 
} 

- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar { 
    [searchBar resignFirstResponder]; 
} 
+0

你的意思是把這條線放在searchBar的shouldEndBegining屬性中嗎?我試過它沒有工作。 – user3202087

+0

不,你需要把它放在'UISearchBar'的代理方法之一 – random

+0

@ user3202087看我的編輯 – random

0

這個測試代碼它工作1000%。

在您的.h文件中

@interface ViewController : UIViewController<UISearchBarDelegate> 

組代表在您的viewDidLoad方法

@property (strong, nonatomic) UISearchBar *searchBar; 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    [self.searchBar setDelegate:self]; 
} 
-(BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar{ 

    [self.searchBar setShowsCancelButton:YES]; 
    return YES; 
} 

-(void)searchBarCancelButtonClicked:(UISearchBar *)searchBar 
{ 
    searchBar.text = @""; 
    [searchBar resignFirstResponder]; 
} 
相關問題