2010-12-06 153 views
19

UIViewController實現放置一個UITableView UISearchBar並被實現的視圖。但是你不能調用searchBarCancelButtonClicked。不知道是什麼原因。searchBarCancelButtonClicked委託方法未被調用。有什麼方法可以打電話嗎?

+1

我有完全相同的問題。我的視圖控制器是搜索欄的代表,它採用UISearchBarDelegate協議。 – 2010-12-07 17:33:23

+1

我也有同樣的問題。一切都應該正確設置。所有其他委託方法都會被調用,但這不是。如果找到理由,我會很高興。 – Petar 2012-01-12 12:46:13

+1

檢查這個問題。它幫助了我。 http://stackoverflow.com/questions/6004438/uisearchbar-delegate-not-responding-to-cancel-button – derpoliuk 2013-08-14 15:58:18

回答

5

確保您的UIViewController設爲您的UISearchBar的代表,而且它採用了UISearchBarDelegate協議。

5
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText { 
    // This method has been called when u enter some text on search or Cancel the search. 
    // so make some condition for example: 

    if([searchText isEqualToString:@""] || searchText==nil) { 
     // Nothing to search, empty result. 
     searching = NO; 
     [mytableView reloadData]; 
    } 
} 

希望它有幫助。

-3

當我在UIScrollView中有一個UISearchBar時,遇到了同樣的問題。據我所知,你在UITableView中有這個問題,它是UIScrollView的一個子類。

在什麼情況下,我是幫助設置

tableView.delaysContentTouches = NO; 

似乎searchBarCancelButtonClicked方法不與設置爲YES,這是默認設置很好地工作。

3

爲什麼searchBarCancelButtonClicked不火可能是因爲您的UISearchBar不顯示取消按鈕的原因。您可以顯示這樣的取消按鈕:

searchBar.showsCancelButton = true 

我有同樣的問題,使取消按鈕節目製作searchBarCancelButtonClicked火如預期。

1

在我的情況是一個不受控制的userInteractionEnabled = NO