我已经搜索了有关 UISearchBar 的所有其他问题,但似乎没有任何答案可以回答我的问题。我在顶部有一个导航 View 和一个带有 UISearchBar 的 tableview。当我点击搜索栏时,tableview 变暗,键盘出现,它们都应该出现,但 uisearchbar 消失了。如果我点击变暗的 tableview,键盘会消失,黑暗消失,UISearchBar 重新出现。知道为什么它会消失吗?

这是扩展 UITableViewController 的类中的一些代码:

searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 100, self.view.frame.size.width, 44)];
searchBar.delegate = self;
searchDisplayController = [[UISearchDisplayController alloc] initWithSearchBar:searchBar contentsController:self];
searchDisplayController.delegate = self;
searchDisplayController.searchResultsDataSource = self;
searchDisplayController.searchResultsDelegate = self;
//[self.tableView insertSubview:self.searchDisplayController.searchBar aboveSubview:self.tableView];
self.tableView.tableHeaderView = searchDisplayController.searchBar;

在我的 .h 文件中,我采用了这些协议(protocol):` 但我没有实现他们的任何方法,除了:
- (void)searchDisplayController:(UISearchDisplayController *)controller didLoadSearchResultsTableView:(UITableView *)tableView
{
[tableView registerClass:[EmailCell class] forCellReuseIdentifier:mailCellIdentifier];
}

编辑:

我特意把tableview往下移,让top navigation view和tableview之间有空白,发现searchbar没有消失,点击UISearchBar的时候在屏幕上往上移,占据了我的空白添加了任何想法为什么?

最佳答案

添加这个方法

- (void)searchDisplayControllerDidEndSearch:(UISearchDisplayController *)controller
{
    if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1) {
        [self.tableView insertSubview:self.searchDisplayController.searchBar aboveSubview:self.tableView];
    }
}

有关更多详细信息,请查看此 link

关于ios - 单击搜索栏后 UISearchBar 消失,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23882808/

10-13 03:40