Entrada de texto iPhone com conclusão e botão Done (não pesquisa)
-
05-07-2019 - |
Pergunta
Usando o iPhone SDK 3.0, eu desejo para permitir a entrada de texto com (opcional) opções de conclusão que aparecem como digitação está ocorrendo, ou seja, também permitindo a entrada freeformat. Como tal, eu estou usando um UISearchBar (que tem os eventos de alteração de texto) e uma UISearchDisplayController a opções presentes.
Os problemas é que eu quero o botão Done para dizer feito e não busca, no entanto, não consigo encontrar uma maneira de definir isso. É evidente que eu sinto que eu estou faltando alguma coisa, ou Interface Builder da API SDK teria alguma propriedade para definir.
Eu vi outros aplicativos (na loja) que alcançaram o resultado que eu quero (entrada de formato livre, conclusão, botão DONE) para que talvez há uma abordagem alternativa que eu estou ausente. Agradecemos antecipadamente por qualquer ponteiros.
Solução
+1 Para a resposta de wal, mas para estar no lado seguro, e devidamente reagir a possíveis alterações na hierarquia vista em novos lançamentos considerar usando este código:
NSArray *subviews = [<searchBar> subviews] ;
for(id subview in subviews) {
if([subview isKindOfClass:[UITextField class]]) {
[(UITextField*)subview setReturnKeyType:UIReturnKeyDone];
}
}
Outras dicas
Apenas teve que implementar exatamente isso e não conseguimos encontrar grandes respostas em qualquer lugar ... então eu pensei que eu iria fornecer algum insight. Percorrendo o depurador e cavando UISearchBar é bastante óbvio. Eu só acabou encontrando o UITextView dentro dos subviews UISearchBar e nesse ponto, então você deve ser capaz de definir o returnkeytype em que UITextView uma vez que você obter uma alça sobre ele.
Psuedocode- UISearchBarObject.SubViewAtIndexOfUITextField.ReturnKeyType = UIReturnKeyType.Done
Coloque esse código em viewDidLoad.
- (void)viewDidLoad {
...
NSArray *subviews = [self.searchDisplayController.searchBar subviews] ;
UITextField *searchField = [subviews objectAtIndex:([subviews count]-2)];
[searchField setReturnKeyType:UIReturnKeyDone];
...
}
Odd, UISearchBar deve apoiar os UITextInputTraits interface como UITextField e UITextView fazer (ele não diz que ele faz na documentação) e, portanto, deve ter returnKeyType . Eu ia tentar de qualquer maneira.
Se isso não acontecer, talvez um dos objetos que UISearchBar utiliza tem esta opção.