禁用 UISearchBar 中的搜索字段

Disable search field in UISearchBar

有没有办法在范围标题为 'All' 时仅禁用搜索字段,但在单击其他范围标题时启用它?

我尝试设置 searchBar.isUserInteractionEnabled = false 但它也禁用了范围标题栏。因此,我无法与范围标题交互以重新启用搜索字段。

提前致谢。

没有 public API 来启用或禁用搜索栏中的文本字段。不过,你有办法。

选择 "All" 范围按钮后,将搜索栏退出为第一响应者。那应该关闭键盘。将 text 属性 设置为空字符串。

实施searchBarShouldBeginEditing委托方法。 Return false 如果 "All" 范围按钮被选中,true 用于其他。这将防止搜索字段在选择 "All" 后变为活动状态。

您可以根据需要更新搜索栏的 prompt,以帮助用户理解为什么当他们在选择 "All" 时尝试输入搜索栏时没有任何反应。