我在tableview控制器中有搜索控制器,代码如下
let searchController = UISearchController(searchResultsController: nil)
override func viewDidLoad() {
super.viewDidLoad()
///// color of letter in search index ////
self.tableView.sectionIndexColor = UIColor.black
self.searchController.searchBar.delegate = self
//////////// search Controller //////////////
self.searchController.searchResultsUpdater = self
//self.searchController.obscuresBackgroundDuringPresentation = true
self.searchController.searchBar.placeholder = "Search Countries"
self.navigationItem.searchController = searchController
definesPresentationContext = true
self.searchController.obscuresBackgroundDuringPresentation = true
self.navigationItem.hidesSearchBarWhenScrolling = false
}
当我搜索搜索栏时,背景中的项目(国家/地区列表)处于非活动状态,如图所示,这很好
我想要做的是在搜索栏中有文字后,让背景中的项目处于活动状态。我尝试了以下代码,但它不起作用
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String)
{
if (searchText.count>0)
{
self.searchController.obscuresBackgroundDuringPresentation = false
}
}
我的视图控制器符合UISearchBarDelegate和UISearchResultsUpdating的信息
答案 0 :(得分:0)
Apple doc:
此属性(obscuresBackgroundDuringPresentation)仅限控件 原始视图控制器是否最初模糊。
Apple的建议:
如果使用相同的视图控制器来显示可搜索的内容 和搜索结果,建议您将此属性设置为 的假即可。此属性的默认值为true。
您可以使用tableview的 isUserInteractionEnabled 属性,在用户输入内容后启用它。