Действительно ли возможно получить доступ к методу делегата, который позволит дополнительным действиям быть выполненными, когда "ясная" кнопка будет нажата на UITextField / UISearchBar?
Спасибо
См .: Ссылка на протокол UITextFieldDelegate
Если вы установите контроллер представления в качестве делегата для текстового поля (это можно сделать в построителе интерфейса), вы можете использовать:
- (void)clearSearchTextField
{
...
}
- (BOOL)textFieldShouldClear:(UITextField *)textField
{
if (textField == self.searchTextField) [self clearSearchTextField];
return YES;
}
Когда вы очистите текстовое поле, произойдет несколько событий, к которым у вас будет доступ через UISearchDisplayDelegate или UISearchBarDelegate, например searchBar: textDidChange
и searchDisplayController: shouldReloadTableForSearchString
. Это также приведет к тому, что таблица поиска будет скрыта, поэтому он сработает
searchDisplayController:willHideSearchResultsTableView
searchDisplayController:didHideSearchResultsTableView
Когда таблица поиска будет скрыта, вы можете проверить если поисковый текст пуст, сделайте все, что вам нужно.