В моем интерфейсе есть UISearchBar, и я хочу настроить поведение маленькой кнопки очистки, которая появляется в строке поиска после ввода некоторого текста (появляется маленький серый кружок с крестиком в нем, появляется на правой стороне поля поиска).
По сути, я хочу, чтобы он не только очищал текст панели поиска (которая является реализацией по умолчанию), но также очищал некоторые другие вещи из моего интерфейса, но вызывал один из моих собственных методов.
Я не могу найти ничего в документах для класса UISearchBar или протокола UISearchBarDelegate - похоже, вы не можете напрямую получить доступ к этому поведению.
Единственное, что я заметил, было то, что в документах объяснялось, что метод делегата:
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText;
вызывается после нажатия кнопки очистки.
Вначале я написал некоторый код в этом методе, который проверял свойство text строки поиска, и если он был пустым, то он очищался и делал все остальные мои вещи.
Две проблемы, которые это, хотя:
Во-первых, по какой-то причине я не могу понять, даже если я говорю поисковой строке resignFirstResponder в конце моего метода, что-то где-то устанавливает его обратно в становлениеFirstResponder. Действительно раздражает ...
Во-вторых, если пользователь не использует кнопку очистки и просто удаляет текст на панели с помощью кнопки удаления на клавиатуре, этот метод отключается, и результаты его поиска исчезают. Не хорошо.
Любой совет или указатели в правильном направлении были бы великолепны!
Спасибо!