当搜索栏为空时,UISearchController搜索结果控制器会消失

5

我有一个UISearchController,当搜索栏被点击时,它会显示它的searchResultsController(另一个视图控制器)。我使用这个UISearchController代理方法来实现:

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

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

然而,每当搜索栏中的文本为空时,无论是手动删除所有文本还是点击小x按钮,搜索结果控制器视图都会消失,直到我重新开始输入文本。有什么想法可能会发生这种情况吗?是否有另一种方法或委托方法在搜索栏文本为空时被触发?

1个回答

2

所以昨天我尝试了一段时间,最终找到了解决方案。我觉得把它发出来,以防其他人遇到同样的问题!

-(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];
    }
}

固定解决方案。希望苹果能够提供更多内置的方法来实现这一点。 - rigdonmr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接