Я изменил код примера iOS-проекта Apple TableSearch , чтобы использовать его для поиска в веб-сервисе путем анализа его содержимого. Все, что я реализовал, работает отлично, за исключением одной уродливой детали при выполнении поиска с использованием SearchBar SearchDisplayController. Я изменил поведение SearchDisplayController, чтобы он сначала вызывал мою функцию поиска при нажатии кнопки «Поиск».
Проблема заключается в том, что когда итерация поиска (которая выполняется в фоновом режиме в NSOperationQueue) завершена, «searchResultsTableView» (searchDisplayController) не отображается автоматически или ему не присваивается результирующее содержимое. Если вы затем измените текст панели поиска или нажмете кнопку «Отмена» в представлении, которое появляется при касании поля поиска (см. Поиск по таблице), появится правильный TableView с результатами поиска. Я просто хочу, чтобы этот шаг был выполнен сразу после завершения операции поиска, прежде чем вы начнете взаимодействовать. На данном этапе в настоящее время отображается ярлык «Нет результатов». Методы "filterContentForSearchText" и "shouldReloadTableForSearchString" не отличаются от исходного проекта TableSearch.
Я рассмотрел ссылки на различные классы SearchDisplayController и его атрибутов, но пока не смог найти окончательного решения.
Я попробовал следующее в разделе, который определенно повторяется после завершения NSOperation, но это, похоже, не решает проблему.
[self.searchDisplayController.searchResultsTableView removeFromSuperview];
и
self.searchDisplayController.searchResultsTableView.hidden = YES;
Обе эти операции имеют правильный вид, который я хочу отображать, НО прокрутка отключена, пока вы не измените состояние, чтобы вид снова скрылся. Однако можно выбрать ячейки TableView. Я в основном хочу иметь это только с включенной прокруткой ...
Заранее спасибо за ваши усилия!