2010-12-06 67 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

相关问题