nessuno può aiutarmi con questo: ho bisogno di implementare UITextField
per il numero di input. Questo numero dovrebbe sempre essere in formato decimale con 4 posti, ad es. 12.3456 o 12.3400. Così ho creato NSNumberFormatter
che mi aiuta con i decimali.come spostare il cursore in UITextField dopo aver impostato il suo valore
sto impostando il valore UITextField
nel metodo
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
. L'input di input, utilizzo di formattatore e infine chiamata [textField setText: myFormattedValue];
Funziona bene ma questa chiamata sposta anche il cursore alla fine del campo. Questo è indesiderato. Per esempio. Ho 12.3400 nel mio campo e il cursore si trova all'inizio e il tipo di utente numero 1. Il valore del risultato è 112,3400 ma il cursore viene spostato alla fine. Voglio terminare con il cursore quando l'utente si aspetta (subito dopo il numero 1 aggiunto di recente). Ci sono alcuni argomenti su come impostare il cursore in TextView
ma questo è UITextField
. Ho anche provato a catturare selectedTextRange
del campo, che salva correttamente la posizione del cursore, ma dopo la chiamata al metodo setText
, questo cambia automaticamente e l'origine UITextRange
viene persa (modificata in corrente). spero che la mia spiegazione sia chiara.
Per favore, aiutami con questo. Grazie mille.
EDIT: Infine, ho deciso di passare la funzionalità a modificare il formato dopo l'intero montaggio e funziona abbastanza bene. L'ho fatto aggiungendo un selettore forControlEvents:UIControlEventEditingDidEnd
.
Quando si legge il 'selectedTextRange', si fa a non copiarla come una proprietà nella classe che funge da' UITextFieldDelegate' e poi ri-set dopo 'setText:'? –
Phillip, che non funziona.Dopo aver impostato il testo con setText, il UITextRange che hai raccolto prima di impostare il testo viene reimpostato su null e quindi non puoi riapplicarlo successivamente al UITextField finito. – JasonD