我正在尝试使用 UISearchDisplay 控制器作为我的网络浏览器应用程序中的导航栏。但是,当用户激活搜索栏并决定取消输入文本时,无论是按下暗色背景还是取消按钮,UISearchBar 的文本都会被清除。我尝试用 UIWebView 中的当前 url 替换空白文本,但这似乎不是合适的方式。即使搜索栏没有聚焦,它也会在 Web 视图上显示 UITableView。
我的问题是,当我取消在搜索栏中输入文本时,有没有办法防止文本被清除。Mobile Safari 可以做到这一点,但我不知道该怎么做。我正在使用委托方法来检测编辑完成后文本是否为空白,我知道这是不对的。我查看了文档,但似乎没有什么特别突出的。
我可以发布代码,尽管它相当微不足道。
-(void)searchDisplayControllerDidEndSearch:(UISearchDisplayController *)controller{
if ([urlSearchController.searchBar.text isEqualToString:_webMain.request.URL.absoluteString]) {
[urlSearchController.searchBar setText:_webMain.request.URL.absoluteString];
[urlSearchController.searchResultsTableView setHidden:YES];
}
}
searchDisplayControllerDidEndSearch
之所以使用它,是因为当用户按下取消和点击灰色叠加层时会调用它。唯一的问题是设置文本会使表格视图出现,并且文本字段在重新填充之前会闪烁空白。