Ввод текста на iPhone с завершением и кнопкой ГОТОВО (не поиск)
-
05-07-2019 - |
Вопрос
Используя 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, имеет эту опцию.