Как заставить панель поиска UISearchControllers завершить "сфокусированное" состояние? - PullRequest
0 голосов
/ 01 апреля 2020

Я сталкиваюсь с проблемой, когда я выполняю поиск, я не могу заставить панель поиска сброситься из ее сфокусированного состояния (фоновый режим затемнен, а кнопка отмены все еще находится в строке поиска. Я хочу очистить панель поиска и НЕ имеют затемненный фон).

Контроллер представления имеет следующее (в представлении загружен):

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 другой контроллер представления в стек (следовательно, почему я хочу очистить строку поиска и сбросить ее состояние, когда контроллер представления снова отображается).

У меня есть Добавил несколько картинок, чтобы показать проблему визуально. Вторая фотография - это то, с чем я остаюсь после нажатия кнопки поиска, когда я хочу выполнить сброс и выглядеть как первая фотография.

Before Search After Search

1 Ответ

0 голосов
/ 02 апреля 2020

self.navigationItem.searchController?.isActive = false очевидно то, что я ищу

...