2013-02-25 12 views
6

Ho due UITextfield l'utente inserisce il suo nome nel primo ed e-mail nel secondo. Mi piacerebbe sapere come cambiare la chiave di ritorno di UIKeyboards a seconda che il campo di testo del nome abbia o meno una voce.cambia dinamicamente UIKeyboards restituisce chiave

Ad esempio se nametextfield è vuota, allora vorrei il tasto invio UIkeyboard essere successiva altro se il nametextfield ha una voce in esso poi, quando l'utente seleziona il campo di testo e-mail vorrei il tasto invio per essere presentare.

È possibile? se sì, come potrei fare per ottenerlo? Qualsiasi aiuto sarebbe apprezzato.

risposta

6

Si può avere tasto invio personalizzato per i valori prefissati che si possono vedere in UIReturnKeyType enum per ogni UITextField.

textFieldName.returnKeyType = UIReturnKeyNext; 
textFieldEmail.returnKeyType = UIReturnKeyDefault; 

Non sono sicuro se questo è quello che stai cercando.

+0

oh sì, è più o meno così, ma non sono sicuro di dove mettere questo codice? – HurkNburkS

+0

ad esempio quale metodo viene chiamato quando si accede a uitextfield? o c'è un altro posto in cui posso metterlo? – HurkNburkS

+0

di solito lo metti in viewDidLoad del tuo controller di visualizzazione, ma dipende dal tuo caso specifico (sono i campi di testo completamente creati in quel momento o lo fai in una fase successiva, ad esempio). – Bastek

4

si ha la possibilità di impostare le caratteristiche della tastiera del UITextFieldDelegate protocollo metodo textFieldShouldBeginEditing: che è chiamato prima che il campo di testo diventa il primo risponditore (anzi per decidere se può diventare il primo responder). Se non si dispone già di un delegato per i campi di testo in questione, è necessario assegnarne uno e implementare almeno tale metodo. Presumibilmente, lo stesso oggetto che gestisce il campo di testo potrebbe contenere i metodi delegati. La seguente implementazione imposta la chiave di ritorno su "Cerca".

- (BOOL) textFieldShouldBeginEditing:(UITextField *)textField { 
    NSLog(@"textFieldShouldBeginEditing"); 
    textField.returnKeyType = UIReturnKeySearch; 
    return YES; 
} 

Si dovrebbe esaminare il contenuto dei campi di testo per decidere quale valore utilizzare.

1

textfield.returnKeyType = UIReturnKeySearch;

Problemi correlati