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