UISearchDisplayController在取消时禁用清除文本

时间:2013-11-10 05:28:12

标签: objective-c uisearchbar uisearchdisplaycontroller

我正在尝试使用UISearchDisplay控制器作为我的Web浏览器应用程序中的导航栏。但是,当用户激活搜索栏并决定取消输入文本时,无论是通过按灰色背景还是取消按钮,都会清除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,因为当用户按下取消时以及点击灰色叠加层时会调用它。唯一的问题是设置文本会使表格视图出现,并且文本字段在重新填充之前会闪烁空白。

0 个答案:

没有答案