我在我的应用程序中使用 UISearchDisplayController。当用户在返回的搜索结果中选择一个项目时,我停用了 UISearchDisplayController。停用 Controller 会清除用户输入的文本。我想把它放在那里。我可以通过在 Controller 停用后再次设置它来强制将文本返回到 UISearchBar 中。
像这样:
NSString* searchText = self.searchDisplayController.searchBar.text;
[self.searchDisplayController setActive:NO animated:YES];
self.searchDisplayController.searchBar.text = searchText;
哪个有效。
但是,如果我不为 deactivate 调用设置动画,我会发现计时问题。呼唤 像这样设置事件:
NSString* searchText = self.searchDisplayController.searchBar.text;
[self.searchDisplayController setActive:NO animated:NO];
self.searchDisplayController.searchBar.text = searchText;
使 UISearchDisplayController 再次激活!
有没有一种方法可以设置 UISearchBar 的文本,而无需激活与其关联的 UISearchDisplayController?还有其他解决此行为的建议吗?
最佳答案
对于任何想知道如何做到这一点的人,我设法通过在我的委托(delegate)中添加它来让它工作:
- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString
{
if(!controller.isActive){
controller.searchResultsTableView.hidden = YES;
return NO;
}
controller.searchResultsTableView.hidden = NO;
[....]
return YES;
}
关于iphone - 如何在不激活 UISearchDisplayController 的情况下在 UISearchBar 中设置文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5316033/