Я сталкиваюсь с проблемой, когда я выполняю поиск, я не могу заставить панель поиска сброситься из ее сфокусированного состояния (фоновый режим затемнен, а кнопка отмены все еще находится в строке поиска. Я хочу очистить панель поиска и НЕ имеют затемненный фон).
Контроллер представления имеет следующее (в представлении загружен):
let searchController = UISearchController(searchResultsController: nil)
searchController.searchBar.delegate = self
searchController.hidesNavigationBarDuringPresentation = false
searchController.searchBar.placeholder = "Search here"
searchController.searchBar.searchBarStyle = .minimal
self.navigationItem.searchController = searchController
Когда я нажимаю поиск, я получаю следующее:
func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
searchBar.endEditing(true)
searchBar.resignFirstResponder()
searchBar.text = ""
self.navigationItem.searchController?.resignFirstResponder()
}
Кажется, searchBar.endEditing(true)
ничего не делает. Ни resignFirstResponder
. Фон представления по-прежнему затемнен.
Для справки, контроллер представления встроен в контроллер навигации, который частично является контроллером представления панели вкладок (если это имеет значение). И после того, как поиск сделан, я помещаю sh другой контроллер представления в стек (следовательно, почему я хочу очистить строку поиска и сбросить ее состояние, когда контроллер представления снова отображается).
У меня есть Добавил несколько картинок, чтобы показать проблему визуально. Вторая фотография - это то, с чем я остаюсь после нажатия кнопки поиска, когда я хочу выполнить сброс и выглядеть как первая фотография.