Как отключить / включить кнопку поиска на клавиатуре UISearchBar? - PullRequest
8 голосов
/ 15 марта 2012

Я использую UISearchBar в своем коде. Я импортировал его делегат в заголовочный файл и также внедрил некоторые методы делегата в файл реализации.

Когда мы нажимаем на UISearchBar, появляется клавиатура для ввода текста. Клавиша возврата на клавиатуре - кнопка « Поиск ». Это будет отключено по умолчанию. Когда мы введем символ, он будет включен. (Я прав?)

Здесь возникает проблема. Я хочу включить клавишу возврата клавиатуры UISearchBar, когда пользователь печатает как минимум две буквы.

Возможно ли это? Если да, то как мы можем это сделать?

Спасибо

Ответы [ 5 ]

9 голосов
/ 15 марта 2012

Вы не можете отключить кнопку поиска.Что вы можете сделать, это использовать UISearchBarDelegate методы, чтобы выяснить, следует ли вам предпринимать действия с нажатой кнопкой поиска, например:

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar {
    if (searchBar.text.length < 2) {
        return;
    }
    else {
        // Do search stuff here
    }
}

Документация Apple для этоготакже очень полезен и является отличной отправной точкой для настройки поведения панели поиска.

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

Короткий ответ - нет ...

Более длинный, хакерский и более экзотический ответ здесь: Как отключить / включить ключ возврата в UITextField?

0 голосов
/ 31 августа 2015

Вы можете попробовать это,

 - (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope{
       if (searchText.length>=2) {
         [Main_SearchBar resignFirstResponder];

         // Do your code here
       }
}
0 голосов
/ 02 мая 2013

Вот как я это делаю:

    if([searchbar.text length] == 0) {
        [searchBar performSelector: @selector(resignFirstResponder)
                           withObject: nil
                           afterDelay: 0.1];
    }
0 голосов
/ 15 марта 2012

Вы можете попробовать это

if([self.searchBar.text length] > 2)
{
    [self.searchBar resignFirstResponder];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...