我将搜索栏配置为显示results按钮,但该按钮只有在用户输入字符时才会显示。在这一点上,"X“取消按钮取代它。因此,如果不输入字符,搜索结果集就等于整个数据集。我希望results按钮留在那里,这样当用户键入足够的字符以获得较小的结果集(如5或6行)时,他们可以单击results按钮,我的委托将被调用,我可以只显示该结果集。
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.VC中的...further ...只有当搜索栏的输入字段为空时,才能调用此方法。
- (void)searchBarResultsListButtonClicked:(UISearchBar *)searchBar {
NSLog(@" searchBarResultsListButtonClicked for %@",searchBar); //
}建议,教程,示例代码和合理的毒品-巴掌欢迎。TIA -Mike
发布于 2011-07-08 17:40:13
@Rayfleck,我认为你根本不应该担心搜索结果按钮。
如果您需要监视用户的输入,直到他们输入足够的字符进行过滤:
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {
if ([searchText length]>5) {
[self filterDataWithKeyword:searchText];
[self.tableView reloadData];
} else {
[self resetFilter];
[self.tableView reloadData];
}
}发布于 2011-07-07 02:10:44
这是一个部分答案,你可以坚持使用viewDidLoad。它应该隐藏clear按钮,但不能保持results按钮可见。我不确定结果按钮视图逻辑是如何在幕后控制的。
for (id subview in mySearchBar.subviews) {
if ([[subview class] isSubclassOfClass:[UITextField class]]) {
[subview setClearButtonMode:UITextFieldViewModeNever];
break;
}
}由于此方法使用所有公共API,因此您的应用程序不应被拒绝。尽管如果苹果决定改变UISearchBar的层级结构,这种方法可能会进一步破坏。我所要做的就是查找UITextField或子类并设置它的clearButtonMode。
希望这能有所帮助。
https://stackoverflow.com/questions/5283058
复制相似问题