alguien me puede ayudar con esto: tengo que implementar UITextField
para el número de entrada. Este número siempre debe estar en formato decimal con 4 lugares, p. 12.3456 o 12.3400. Así que creé NSNumberFormatter
que me ayuda con las posiciones decimales.cómo mover el cursor en UITextField después de establecer su valor
me he fijado en el valor UITextField
método
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
. I entrada de proceso, use formateador y finalmente llame al [textField setText: myFormattedValue];
Esto funciona bien pero esta llamada también mueve el cursor al final de mi campo. Eso no es deseado P.ej. Tengo 12.3400 en mi campo y el cursor está ubicado al principio y el usuario escribe el número 1. El valor del resultado es 112.3400 pero el cursor se mueve al final. Quiero terminar con el cursor cuando el usuario espera (justo después del número 1 agregado recientemente). Hay algunos temas sobre cómo colocar el cursor en TextView
, pero esto es UITextField
. También intenté capturar selectedTextRange
del campo, que guarda la posición del cursor correctamente pero después de la llamada al método setText
, esto cambia automáticamente y se pierde el origen UITextRange
(cambiado a actual). espero que mi explicación sea clara.
Por favor, ayúdenme con esto. muchas gracias.
EDIT: Finalmente, decidí cambiar la funcionalidad para cambiar el formato después de la edición completa y funciona lo suficientemente bien. Lo he hecho agregando un selector forControlEvents:UIControlEventEditingDidEnd
.
Cuando se lee la 'selectedTextRange', puede que no copiarla como una propiedad de la clase que actúa como el' UITextFieldDelegate' y luego re-set después de 'setText:'? –
Phillip, eso no funciona.Después de establecer el texto con setText, el UITextRange que recopiló antes de configurar el texto se restablece a nulo, por lo que no puede volver a aplicarlo al UITextField finalizado. – JasonD