Domanda

Usando iPhone SDK 3.0, desidero consentire l'inserimento di testo con opzioni di completamento (facoltative) che appaiono quando si verifica la digitazione, vale a dire anche consentire l'inserimento a formato libero. Come tale sto usando un UISearchBar (che ha gli eventi di modifica del testo) e un UISearchDisplayController per presentare le opzioni.

Il problema è che voglio che il pulsante DONE dica DONE e non SEARCH, tuttavia non riesco a trovare un modo per impostarlo. Chiaramente sento che mi manca qualcosa, o Interface Builder dell'API SDK avrebbe alcune proprietà da impostare.

Ho visto altre app (nello store) che hanno ottenuto il risultato che desidero (immissione del formato gratuita, completamento, pulsante DONE) quindi forse c'è un approccio alternativo che mi manca. Grazie in anticipo per eventuali suggerimenti.

È stato utile?

Soluzione

+1 Per la risposta di Wal, ma per essere al sicuro e reagire correttamente alle possibili modifiche nella gerarchia delle viste in ulteriori versioni, considera l'utilizzo di questo codice:

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

Altri suggerimenti

Ho dovuto implementare esattamente questo e non sono riuscito a trovare grandi risposte da nessuna parte ... quindi ho pensato di fornire alcune informazioni. Attraversare il debugger e scavare in UISearchBar è abbastanza ovvio. Ho appena finito di trovare UITextView all'interno delle sottoview di uisearchbar e a quel punto dovresti essere in grado di impostare il tipo di chiave di ritorno su quel UITextView una volta che hai una maniglia su di esso.

Psuedocode- UISearchBarObject.SubViewAtIndexOfUITextField.ReturnKeyType = UIReturnKeyType.Done

Metti questo codice in viewDidLoad.

- (void)viewDidLoad {
...

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

...
}

Strano, UISearchBar dovrebbe supportare l'interfaccia UITextInputTraits come fanno UITextField e UITextView (non dice che lo fa nella documentazione) e quindi dovrebbe avere returnKeyType . Lo proverei comunque.

In caso contrario, forse uno degli oggetti utilizzati da UISearchBar ha questa opzione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top