UISearchBarDelegate showsSearchResultsButton属性的正确用法是什么?

Ray*_*eck 2 uisearchbar ios

我将搜索栏配置为显示结果按钮,但该按钮仅显示,直到用户输入字符.此时,"X"取消按钮取代它.因此,如果不输入字符,搜索结果集将等于整个数据集.我希望结果按钮保持在那里,所以当用户键入足够的字符以获得较小的结果集(如5或6行)时,他们可以单击结果按钮,我的代表将被调用,我可以显示那个结果集.

UISearchBar * theSearchBar = [[UISearchBar alloc] 
                             initWithFrame:CGRectMake(0,0,700,40)];
theSearchBar.delegate = self;

theSearchBar.placeholder = @"What are you looking for?";
theSearchBar.showsCancelButton = NO;         // shows up after first char typed.
theSearchBar.showsSearchResultsButton = YES; // disappears just when I need it.
Run Code Online (Sandbox Code Playgroud)

...在VC中进一步向下...此方法只能在搜索栏的输入字段为空时调用.

 - (void)searchBarResultsListButtonClicked:(UISearchBar *)searchBar {
         NSLog(@" searchBarResultsListButtonClicked for %@",searchBar); // 
    }
Run Code Online (Sandbox Code Playgroud)

建议,教程,示例代码和合理的dope-slaps欢迎.TIA -Mike

Zha*_*Chn 12

@Rayfleck,我想你根本不用担心搜索结果按钮.

如果你需要的是监视用户的输入,直到他们输入足够的字符进行过滤:

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {
    if ([searchText length]>5) {
        [self filterDataWithKeyword:searchText];
        [self.tableView reloadData];
    } else {
        [self resetFilter];
        [self.tableView reloadData];
    }
}
Run Code Online (Sandbox Code Playgroud)