7

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

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

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

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

Благодаря

ответ

7

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

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

Apple Documentation для этого очень полезен, и является отличной отправной точкой для настройки поведения searchBar.

+1

Но пользователь не знает, активна ли кнопка поиска, но ничего не делает –

+0

Как @NikKov. отключить (изменить на серый цвет) кнопку поиска. –

-1

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

if([self.searchBar.text length] > 2) 
{ 
    [self.searchBar resignFirstResponder]; 
} 
+1

Ой .... извините, получил свою ошибку .. :( – Krunal

1

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

Longer, дилетантский и более экзотические один здесь: How to disable/enable the return key in a UITextField?

+0

Для конкретно «Могу ли я в буквальном смысле disable return key для searchbar ", это правильный ответ. За исключением того, что требование OP может быть выполнено иначе – NSNoob

0

Вот как я это сделать:

if([searchbar.text length] == 0) { 
     [searchBar performSelector: @selector(resignFirstResponder) 
          withObject: nil 
          afterDelay: 0.1]; 
    } 
0

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

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

     // Do your code here 
     } 
} 
Смежные вопросы