resignFirstResponder для UITextField с ключом поиска поиска - PullRequest
0 голосов
/ 26 марта 2012

Простой вопрос: как я могу оставить свое текстовое поле, если мой "готовый" ключ - Поиск. По сути, что мне делать, если пользователь не хочет искать, а вместо этого хочет отменить ...

спасибо

Ответы [ 2 ]

2 голосов
/ 26 марта 2012

Вы можете использовать: кнопку отмены для 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

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;

Надеюсь, это поможет вам.

1 голос
/ 26 марта 2012

Текст на кнопке возврата не имеет отношения к обсуждению. Вы хотите знать, как подать в отставку первого респондента, не нажимая кнопку возврата, и есть несколько способов сделать это.

  1. Используйте inputAccessoryView текстового поля для отображения отдельной кнопки отмены на панели инструментов над клавиатурой.
  2. Используйте распознаватель жестов касания на суперпредставлении поля, чтобы распознать, когда пользователь нажимает за пределами поля, и наберите [self.view endEditing:YES] (где self - ваш контроллер представления). Это приведет к отставке первого респондента. (Это очень привередливый вид прокрутки.)
  3. Поменяйте rightBarButtonItem текущего контроллера вида для элемента кнопки панели отмены во время редактирования, предполагая, что у вас есть UINavigationBar на экране в данный момент. Когда редактирование закончится, вернитесь в обычный элемент правой панели кнопок, если есть.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...