ios - 当搜索栏文本为空时,UISearchController searchResultsController 消失

标签 ios objective-c uisearchbar uisearchcontroller

我有一个 UISearchController,它在点击搜索栏时显示它的 searchResultsController(这是另一个 View Controller )。我使用此 UISearchController 委托(delegate)方法执行此操作:

-(void)presentSearchController:(UISearchController *)searchController {

    dispatch_async(dispatch_get_main_queue(), ^{
        searchController.searchResultsController.view.hidden = NO;
    });
}

但是,只要搜索栏的文本为空,无论是手动删除所有文本还是点击小 x 按钮,searchResultsController View 都会消失,直到我再次开始输入文本。为什么会发生这种情况的任何想法?当 searchbar.text 为空时,是否有其他方法或委托(delegate)方法被触发?

最佳答案

所以在昨天摆弄了一段时间之后,这是我发现最终有效的解决方案。我想我会发布它以防其他人遇到同样的问题!

-(void)presentSearchController:(UISearchController *)searchController {

    //forces searchResultsController to appear when searchBar tapped
        dispatch_async(dispatch_get_main_queue(), ^{
            searchController.searchResultsController.view.hidden = NO;
        });
}

-(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {

    //Prevents searchController from disappearing
    if ([searchText isEqualToString:@""])
    {
        [self presentSearchController:self.searchController];
    }
}

关于ios - 当搜索栏文本为空时,UISearchController searchResultsController 消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30762240/

相关文章:

ios - TransitionFromView 移除之前的 View

iphone - 从 UIWebView 打开时,订阅的日历名称具有 .ics URL

ios - UIScrollView 委托(delegate)方法 scrollViewWillEndDragging : not working?

ios - 使用下一个和上一个UIButton切换UITextView/UILabel中的不同文本

ios - 计算在collectionView单元格中使用的NSString高度

ios - 在 AVPlayer seekToTime 中使用秒数

ios - UIView 图标动画

ios - UISearchController 未调用的行数

ios - 在 Swift 中隐藏 UISearchBar

iphone - 当 UISearchDisplayController 处于非事件状态时保持搜索词可见