如何让 UISearchController 与 UISearchBar Interface Builder 控件一起使用?

Posted

技术标签:

【中文标题】如何让 UISearchController 与 UISearchBar Interface Builder 控件一起使用?【英文标题】:How do I get UISearchController to work with the UISearchBar Interface Builder control? 【发布时间】:2017-12-27 06:42:24 【问题描述】:

列表项

如何让 UISearchController 与 Interface Builder 中的搜索栏控件一起使用?我试过以下代码:

@IBOutlet weak var searchBar: UISearchBar!  

searchController.searchBar = searchBar  

这在编码时给了我一个错误,说 searchController.searchBar 是一个 get-only 属性。

@IBOutlet weak var searchBar: UISearchBar!  

searchBar = searchController.searchBar  

这为我提供了我想要的 UI,但搜索不起作用。

var searchBar: UISearchBar!  

searchBar = searchController.searchBar  

NSLayoutConstraint(searchBar, ..... )  

这有效,只是当我开始在搜索栏中输入时,搜索栏消失了。**

【问题讨论】:

我也有同样的问题 【参考方案1】:

UISearchController 的 searchBar 是一个计算属性,因此您必须存储自定义的 searchBar 并在调用 searchBar 时返回它。

var yourSearchBar = yourSearchBar()
override var searchBar: UISearchBar 
    get
        return yourSearchBar;
    

【讨论】:

我试过了。我在我覆盖的行上收到一条错误消息,“属性不会覆盖其超类中的任何属性”。我假设你是想让我为 UISearchController 编写一个扩展。

以上是关于如何让 UISearchController 与 UISearchBar Interface Builder 控件一起使用?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 UISearchController 与 SwiftUI 集成

tvOS 14.3 UISearchController:如何锁定显示

用 UITableView 实现 UISearchController

如何下移 UISearchController?

将 UISegmentedControl 与 UISearchController 一起使用

UISearchController 更改“取消”按钮标题