Как сделать просмотр таблицы незаметным, когда в строке поиска в swift4 есть текст - PullRequest
0 голосов
/ 21 мая 2018

У меня есть контроллер поиска, который находится в контроллере табличного представления, и код следующий

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



}

При поиске в строке поиска элементы в фоновом режиме (список стран) неактивны, как показано наи все в порядке enter image description here

Что я хочу сделать, это сделать элементы в фоновом режиме активными, как только текст в строке поиска.Я попробовал следующий код, но он не работает

func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String)
 {
        if (searchText.count>0)
        {
            self.searchController.obscuresBackgroundDuringPresentation = false
        }
 }

Мой контроллер представления соответствует UISearchBarDelegate и UISearchResultsUpdating для информации

1 Ответ

0 голосов
/ 23 мая 2018

Apple doc:

Это свойство (obscuresBackgroundDuringPresentation) контролирует только то, является ли первоначальный контроллер представления изначально скрытым.

Предложение Apple:

Если вы используете один и тот же контроллер представления для отображения содержимого для поиска и результатов поиска, рекомендуется установить для этого свойства значение false .Значение по умолчанию для этого свойства - true.

вы можете использовать свойство tableview isUserInteractionEnabled , сделайте его включенным после ввода пользователем чего-либо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...