当我在搜索字段中输入文本时,为什么我的UISearchDisplayController不会触发shouldReloadTableForSearchString方法?

时间:2010-05-13 16:49:18

标签: iphone objective-c xcode uitableview uisearchdisplaycontroller

我一直在关注Apple的TableSearch代码示例,但它并不适合我,我认为我做的一切都和他们做的一样。每当用户在搜索框中输入任何内容时,都应该触发下面的方法,但是对于我来说,它永远不会被触发,只是在示例应用上。

我的头文件有这个实现:

@interface ContactsTableVC : UITableViewController <UISearchDisplayDelegate, UISearchBarDelegate>{

我不确定我错过了什么,或者在哪里看。

我的NSLog永远不会被调用。

感谢您的帮助!

    - (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString searchScope:(NSInteger)searchOption
{
    NSLog(@"The shouldreloadtableforsearchstring method has been called!");
    [self filterContentForSearchText:searchString];

    // Return YES to cause the search result table view to be reloaded.
    return YES;
}

2 个答案:

答案 0 :(得分:0)

您是否在@interface ContactsTableVC文件中添加了委托UISearchDisplayDelegate。

答案 1 :(得分:0)

我觉得愚蠢。我至少看过100次以确保我正确行事,并且通常情况下,这是我忽略的小事。我的TableViewController xib在Interface Builder中以某种方式有两个SearchDisplayControllers。它是默认的第一个,它没有链接到搜索栏。我只需删除第一个SearchDisplayController,一切都开始工作......

感谢@Jordan快速回复。非常感谢!