使用搜索栏时无法使表格视图处于非活动状态。苹果手机

Posted

技术标签:

【中文标题】使用搜索栏时无法使表格视图处于非活动状态。苹果手机【英文标题】:Can't make table view inactive when search bar is in use. iPhone 【发布时间】:2010-07-20 21:53:57 【问题描述】:

我有一个表格视图,上面有一个搜索栏,当按下搜索栏时,我希望表格视图变为非活动状态。所以我有这个方法:

- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar

    self.tableView.userInteractionEnabled = NO;

同一个类是 UISearchBarDelegate。出于某种原因,虽然它没有禁用表格视图。有什么想法吗?让我知道是否还有其他需要帮助的代码。谢谢。

【问题讨论】:

你有没有 NSLog() 看看它是否被调用过? 是的,我做到了,它被称为。出于某种原因,它并没有禁用它 【参考方案1】:

不确定为什么 userInteractionEnabled 不会让您的 UITableView 处于非活动状态,但我可以建议一种替代方法。

我最近将一个项目从手动添加 UISearchBar 作为我的 UITableView 的子视图转移到使用 UISearchDisplayController。我绝对可以推荐这样做。 SearchDisplayController 将在搜索栏后面的 alpha 混合视图中进行动画处理,从而防止与底层表视图交互,从而避免您遇到的问题。

更新:

这可能与您添加 UISearchDisplayController 的方式有关。你的视图层次结构是这样的吗?

【讨论】:

我正在使用 UISearchDisplayController,它仍然不会阻止用户交互。不知道为什么。 @marty 好的,这很奇怪。当您调用 UISearchDisplayController setActive 时,您应该会在您的 tableview 上弹出一个半透明的视图。您是在代码中还是从 XIB 中加载 UISearchDisplayController?

以上是关于使用搜索栏时无法使表格视图处于非活动状态。苹果手机的主要内容,如果未能解决你的问题,请参考以下文章

如何使新插入的表格视图单元格的文本字段处于活动状态?

在 SwiftUI 中,如何使手势在容器视图之外处于非活动状态?

在搜索栏处于活动状态时删除表格视图中的单元格 - CoreData 错误

UISearchBar 在活动时与 UITableView 内容重叠

Ios:当应用程序处于非活动状态时,如何让我的应用程序返回根视图

搜索处于活动状态并推送到下一个视图控制器时出现导航栏问题