2013-04-06 23 views
7

Ho tre campi di testo e voglio essere in grado di spostare il cursore sul successivo. Quando viene raggiunto l'ultimo, la tastiera viene chiusa. Ma niente funziona per me ... Ecco un esempio di ciò che ho. Tuttavia, nulla si muove e non accade nulla quando seleziono il pulsante successivo.Come spostare il cursore UITextField sul campo di testo successivo

- (BOOL)textFieldShouldReturn:(UITextField *)textField { 
    if (textField == field1TextField) { 
     [textField resignFirstResponder]; 
     [field2TextField becomeFirstResponder]; 
    } 
    else if (textField == field2TextField) { 
     [textField resignFirstResponder]; 
     [field3TextField becomeFirstResponder]; 
    } 
    else if (textField == field3TextField) { 
     [textField resignFirstResponder]; 
    } 
    return YES; 
} 
+3

Sei sicuro che i delegati del campo di testo sono impostati correttamente? Viene chiamato questo metodo? – stevex

+0

Viene chiamato questo metodo? Se lo fa .. e il campo textField == campo1TextField è chiamato block .. e field2TextField non è nil .. allora sembra che dovrebbe funzionare – stevex

+0

Form il tuo commento come una domanda! ho dimenticato di farlo! lo segnerò! –

risposta

3

L'oggetto a cui è associato questo metodo deve essere impostato come delegato del campo di testo. Verifica questo impostando un punto di interruzione nel metodo per verificare che venga chiamato quando lo ritieni opportuno.

Se si utilizzano pennini o storyboard, le variabili di istanza field... devono essere prese correttamente collegate. Se vengono creati a livello di codice, è necessario assicurarsi che abbiano oggetti assegnati a loro. Verificare questo ispezionando i valori di queste variabili quando si è all'interno del metodo.

Non è necessario chiamare resignFirstResponder su altri comandi prima di chiamare becomeFirstResponder su un altro.

+0

Grazie per la risposta –

Problemi correlati