iPhone ввод текста с завершением и кнопкой Готово (не поиск)
Используя iPhone SDK 3.0, я хочу разрешить ввод текста с (необязательными) опциями завершения, которые появляются при вводе текста, т. е. Также разрешая ввод freeformat. Поэтому я использую UISearchBar (который имеет события изменения текста) и UISearchDisplayController для представления опций.
Проблема в том, что я хочу, чтобы кнопка "готово" говорила "готово", а не "поиск", однако я не могу найти способ установить это. Ясно, что я чувствую, что мне чего-то не хватает, или построитель интерфейса API SDK будет иметь некоторые свойство для установки.
Я видел другие приложения (в магазине), которые достигли желаемого результата (свободный ввод формата, завершение, кнопка готово), так что, возможно, есть альтернативный подход, которого мне не хватает. Заранее спасибо за любые подсказки.
4 ответа:
+1 для ответа wal, но чтобы быть в безопасности и правильно реагировать на возможные изменения в иерархии представлений в последующих выпусках рассмотрите возможность использования этого кода:
NSArray *subviews = [<searchBar> subviews] ; for(id subview in subviews) { if([subview isKindOfClass:[UITextField class]]) { [(UITextField*)subview setReturnKeyType:UIReturnKeyDone]; } }
Просто нужно было реализовать именно это и нигде не мог найти хороших ответов... вот я и подумал, что могу кое-что прояснить. Шагая через отладчик и копаясь в UISearchBar это довольно очевидно. Я просто нашел UITextView в uisearchbar subviews, и в этот момент Вы должны быть в состоянии установить returnkeytype на этом UITextView, как только вы получите дескриптор на нем.
Psuedocode- 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, имеет эту опцию.