2015-10-30 3 views
0

В моем случае я бы ограничил текст строки поиска до 50 символов. Поэтому я использовал shouldChangeTextInRangeUISearchBar: searchBarSearchButtonClicked делегат не называется

- (BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text { 
return [searchBar.text length] + [text length] - range.length >= 50); 
} 

Но searchBarSearchButtonClicked не вызывается, когда строка поиска текста более 50 символов.

Как с этим справиться?

ответ

2

сделать как

- (BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text { 
    return ([searchBar.text length] + [text length] - range.length > 50) ? NO : YES; 
} 

Edit:

- (BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text { 
    return ([searchBar.text length] + [text length] - range.length <= 50); 
} 

в то же время проверки

1.You необходимо реализовать UISearchBarDelegate протокол внутри вашего контроллера представления.

@interface ViewController : UIViewController <UISearchBarDelegate> 

2. Вам нужно будет назначить делегата

searchBar.delegate = self; 

для дополнительного reference

+0

Anbu, спасибо за ваш ответ. Но моя проблема не решена. Если длина текста меньше 50, кнопка поиска клавиатуры работает правильно. Если более 50 означает, что это не работает. Поскольку делегат 'shouldChangeTextInRange' возвращает NO, поэтому он не вызывает' searchBarSearchButtonClicked' deleagate. Не могли бы вы дать мне другие решения? –

+0

@ManiApple - условие статизируется, когда вы вводите более 50, автоматически автоматическое resingn, если вы удаляете некоторый символ, который он работает, но вам нужен ответ, как будто любые типы пользователей, которые вам нужны, чтобы включить keyborad правильно, при использовании нажмите на отставку кнопка хочет установить условие –

+0

Я использую UISearchBar, так что клавиатура имеет ключ поиска. Я не хочу уходить с клавиатуры. Почему это не работает, когда shouldChangeTextInRange возвращает NO. Любая подсказка ...? Как я могу назвать searchBarSearchButtonClicked делегировать более 50 символов? –

Смежные вопросы