¿Cómo compilo un campo de input de número de estilo de calculadora en iOS?

Ya sé cómo activar los keyboards numéricos y validar la input de campo para asegurarse de que es numérico. Lo que quiero saber es cómo configurar una vista de input que permita que mi usuario ingrese un valor numérico de derecha a izquierda, como una calculadora o un cajero automático.

En otras palabras, quiero que el usuario pueda escribir:

2 0 0 4 9 

y que se muestre como $ 200.49 .

Entonces, una vez que se ha ingresado, también necesito get valores dentro o fuera de esta vista de input como un NSNumber o NSDecimalNumber, con la colocación decimal correcta.

Por ejemplo, tengo un NSDecimalNumber equivalente a 17.50. Necesito poder pasar este número a la vista del keyboard para editar, luego recuperar el valor editado como un object de número .

Digamos que el usuario edita ese valor; el valor que ven sería

 1 7 5 0 

Luego presionan la tecla de retroceso. El número que se muestra entonces sería

 1 7 5 

Necesito recuperar ese número como 1.75, no 175 o 17.5.

¿Alguna sugerencia?

Escribí un KeyPad , eso te permite quedarte en un delegado. debería ser bastante fácil de usar para una interfaz ATM.

Para formatear la cadena puede usar NSNumberFormatter. Algo como esto:

 float input = 20049.0f / 100.0; NSNumberFormatter* formatter = [[NSNumberFormatter alloc] init]; [formatter setNumberStyle:NSNumberFormatterCurrencyStyle]; NSNumber *nsInput = [NSNumber numberWithFloat:input]; NSString* formattedOutput = [formatter stringFromNumber:nsInput]; NSLog(@"Output as currency: %@", formattedOutput); [formatter release]; 

He implementado SATextField que tiene esta funcionalidad incorporada. Funciona como un UITextField y tiene el mismo aspecto. Simplemente establezca la propiedad fixedDecimalPoint en YES .

EDIT: He creado un nuevo proyecto que contiene esta funcionalidad: STAControls (específicamente, usa STAATMTextField , ¡ incluso admite input! ). La diferencia es que este proyecto se ha implementado como una subclass legítima de UITextField mientras que SATextField era simplemente una class de contenedor que alberga una instancia de UITextField .