Вы можете использовать: кнопку отмены для SearchBar и необходимо реализовать это SearchBar delegate
:
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar
{
isSearching = NO; //This is a flag which specifies if searching is going on or not.
searchBar.text = @""; //Clears out search bar text
[self resetSearch]; //Reset search resets all the flags and variables.
[self.leadsTable reloadData]; //Reloads the tableView
[searchBar resignFirstResponder]; //Resigns responder from Search bar
}
Это правильный способ уволить респондента, если пользователь не хочет искать.
Посмотрите, как вы можете добавить встроенную кнопку Отмена в UISearchBar. Проверьте свойство " Показывает кнопку отмены " (выделение красной стрелкой)
![enter image description here](https://i.stack.imgur.com/1HMyn.png)
EDIT:
ШАГ-1:
Проверьте условно, является ли текст вашего textField пустым? Если это так, resignFirstResponder для TextField. Вам необходимо установить делегат на self
для UITextField, используя код:
txtField.delegate = self;
Или вы можете сделать то же самое из конструктора интерфейса, подключив TextField delegate
к File's Owner
.
ШАГ-2: Вам необходимо реализовать этот метод делегата.
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
if([textField.text isEqualToString:@""])
{
[textField resignFirstResponder];
}
return YES;
}
EDIT-1:
Теперь создайте панель инструментов UIToolbar с одной кнопкой на панели с надписью «Отмена»
Как только вы это сделаете:
Вы можете написать событие нажатия кнопки для UIToolBar:
-(IBAction)cancelClicked:(id)sender
{
[txtField resignFirstResponder];
}
Как только вы это сделали, вы можете написать:
txtField.inputAccessoryView = toolbarOutlet;
Надеюсь, это поможет вам.