UISearchBar结束编辑,隐藏键盘,但屏幕仍然暗淡

时间:2019-07-04 19:09:22

标签: ios swift uisearchbar uisearchbardelegate

我有一个视图控制器,其中动态创建了一个UISearchController并将其分配给class MyViewController: UIViewController, UISearchBarDelegate { let searchController = UISearchController(searchResultsController: nil) override func viewDidLoad() { super.viewDidLoad() navigationItem.searchController = searchController searchController.searchBar.delegate = self // launch the app directly into this search text box searchController.searchBar.becomeFirstResponder() } func searchBarShouldEndEditing(_ searchBar: UISearchBar) -> Bool { // I tried this searchBar.resignFirstResponder() // and this searchBar.endEditing(true) // and finally this return true } }

{{1}}

当用户触摸搜索栏之外的任何地方时,键盘都会隐藏起来,并且屏幕会恢复到其亮度。那是预期的行为。

但是,当用户点击屏幕键盘上的[Search]按钮时,键盘消失了,但屏幕保持暗淡。子视图均不可用,除非用户再次点击搜索栏,然后键盘又回来了。

因此,简而言之,用户继续使用视图控制器的唯一方法是不要点击[search]按钮,这是违反直觉的。

我想念东西吗?

1 个答案:

答案 0 :(得分:1)

在viewDidLoad()中,添加以下行:

searchController.obscuresBackgroundDuringPresentation = false

从文档中:如果您使用相同的视图控制器来显示可搜索的内容和搜索结果,则建议将此属性设置为false。此属性的默认值为true。