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