在我的自定义
当我点击搜索栏、输入文字并点击暗淡的底层内容时,
当我明确(通过程序)将搜索控制器设置为不活动状态时,搜索文本也会被清除(同样出乎意料)。为了解决这个问题,我会在关闭搜索控制器之前存储搜索文本,然后重新设置文本。虽然有些繁琐,但它起作用。
UITableViewController
子类的viewDidLoad
中,我已经将navigationItem.titleView
设置为一个UISearchController
的searchBar
,其中searchResultsController
被初始化为nil
。当我点击搜索栏、输入文字并点击暗淡的底层内容时,
UISearchController
会被停用(正如预期),而我输入的搜索文本也会被清除(出乎意料)。当我明确(通过程序)将搜索控制器设置为不活动状态时,搜索文本也会被清除(同样出乎意料)。为了解决这个问题,我会在关闭搜索控制器之前存储搜索文本,然后重新设置文本。虽然有些繁琐,但它起作用。
let searchText = searchBar.text // #hack
searchController.isActive = false
searchBar.text = searchText // #hack
当搜索控制器自动关闭时,我尝试使用UISearchControllerDelegate
方法来实现类似的功能,即在willDismissSearchController(_:)
中存储搜索文本,并在didDismissSearchController(_:)
中将其设置回去。但是,这种解决方案仍然显示搜索文本被清除,然后重新设置为之前的内容。
当搜索控制器自动关闭时,如何无缝地保留搜索栏中的文本?
UISearchBar
? - SwiftArchitect