2011-03-17 34 views
1

我有一個UISearchBar在我的應用程序,我運行下面的代碼與它:iPhone的UISearchBar需要兩次點擊選擇

- (void)searchBarShouldBeginEditing:(UISearchBar *)searchBar { 
    [searchBar setShowsCancelButton:YES animated:YES]; 
} 

所以,當用戶點擊搜索欄,取消按鈕彈出在它旁邊。

不幸的是,這使得文本框沒有被選中,並且鍵盤不能彈出。您必須再次單擊搜索欄才能使這些事情發生。

我該如何解決這個問題?

謝謝。

回答

1

的方法應該是這樣的:

- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar { 
    [searchBar setShowsCancelButton:YES animated:YES]; 
    return YES; 
} 

的關鍵因素是在這個方法返回YES,表明它其實應該開始編輯。

此處的文檔:http://developer.apple.com/library/ios/documentation/uikit/reference/UISearchBarDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intfm/UISearchBarDelegate/searchBarShouldBeginEditing

+0

完美,謝謝。這實際上幫助我更好地理解iOS SDK。 – rottendevice 2011-03-17 18:32:27

0

你能不能改變你的代碼如下

[searchBar setShowsCancelButton:NO animated:YES]; 

我覺得你是在上面的方法傳遞YES