Ввод текста на iPhone с завершением и кнопкой ГОТОВО (не поиск)

StackOverflow https://stackoverflow.com/questions/1609125

Вопрос

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

Проблема в том, что я хочу, чтобы на кнопке "ГОТОВО" было написано "ГОТОВО", а не "ПОИСК", однако я не могу найти способ установить это.Очевидно, я чувствую, что мне чего-то не хватает, или у конструктора интерфейса SDK API было бы какое-то свойство для установки.

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

Это было полезно?

Решение

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

NSArray *subviews = [<searchBar> subviews] ;
for(id subview in subviews) {
    if([subview isKindOfClass:[UITextField class]]) {
        [(UITextField*)subview setReturnKeyType:UIReturnKeyDone];
    }
}

Другие советы

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

Псевдокод- UISearchBarObject.SubViewAtIndexOfUITextField.returnKeyType = UIReturnKeyType.Готово

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

- (void)viewDidLoad {
...

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

...
}

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top