Ввод текста iPhone с завершением и кнопкой DONE (не поиск) - PullRequest
2 голосов
/ 22 октября 2009

Используя iPhone SDK 3.0, я хочу разрешить ввод текста с (необязательными) параметрами завершения, которые отображаются по мере ввода текста, то есть также разрешать ввод в произвольном формате. В качестве такового я использую UISearchBar (в котором есть события изменения текста) и UISearchDisplayController для представления параметров.

Проблема в том, что я хочу, чтобы кнопка DONE показала DONE, а не SEARCH, однако я не могу найти способ установить это. Я чувствую, что что-то упустил, или у Interface Builder API SDK есть свойство для установки.

Я видел другие приложения (в магазине), которые достигли желаемого результата (запись в произвольном формате, завершение, кнопка DONE), поэтому, возможно, есть альтернативный подход, который мне не хватает. Заранее спасибо за любые указатели.

Ответы [ 4 ]

5 голосов
/ 30 августа 2010

+ 1 Для ответа Уолла, но чтобы быть в безопасности и правильно реагировать на возможные изменения в иерархии представлений в последующих выпусках, рассмотрите возможность использования этого кода:

NSArray *subviews = [<searchBar> subviews] ;
for(id subview in subviews) {
    if([subview isKindOfClass:[UITextField class]]) {
        [(UITextField*)subview setReturnKeyType:UIReturnKeyDone];
    }
}
2 голосов
/ 26 марта 2010

Просто нужно было реализовать именно это и нигде не найти хороших ответов ... поэтому я подумал, что должен дать некоторое представление. Проходить через отладчик и копаться в UISearchBar это довольно очевидно. Я только что закончил тем, что нашел UITextView в подпредставлениях uisearchbar, и в этот момент вы сможете установить тип возвращаемого ключа для этого UITextView, как только вы получите указатель на него.

Psuedocode- UISearchBarObject.SubViewAtIndexOfUITextField.ReturnKeyType = UIReturnKeyType.Done

1 голос
/ 29 марта 2010

Поместите этот код в viewDidLoad.

- (void)viewDidLoad {
...

NSArray *subviews = [self.searchDisplayController.searchBar subviews] ;
UITextField *searchField = [subviews objectAtIndex:([subviews count]-2)];
[searchField setReturnKeyType:UIReturnKeyDone];

...
}
0 голосов
/ 22 октября 2009

Странно, UISearchBar должен поддерживать интерфейс UITextInputTraits, как это делают UITextField и UITextView (это не сказано в документации), и поэтому должен иметь returnKeyType . Я бы все равно попробовал.

Если это не так, возможно, один из объектов, которые использует UISearchBar, имеет эту опцию.

...