Pregunta


Tengo una UITextField y necesito para permitir sólo números, coma o punto de escribir en este campo.
¿Cómo puedo comprobar si esta cadena contiene cualquier carácter en lugar de éstos arriba y cómo puedo reemplazar / eliminarlos?

Mi campo almacenará un costo y que sólo necesitan números, coma o punto ...

Puede alguien ayudarme?
Gracias!

¿Fue útil?

Solución

Se puede utilizar el método -textFieldDidEndEditing: del protocolo UITextFieldDelegate. Este método se llama cada vez que un campo de texto dimite el primer estado de respuesta (es decir finalizada la edición). Esta es la oportunidad de comprobar la cadena introducida. Si desea realizar una comprobación después de cada carácter que se ha introducido, como el uso -textField:shouldChangeCharactersInRange:replacementString: donkim sugiere.

Otros consejos

En el campo de texto, se podría utilizar el UITextFieldDelegate y poner en práctica el método textField:shouldChangeCharactersInRange:replacementString:. De acuerdo con los documentos, "el campo de texto llama a este método cada vez que el usuario escribe un nuevo carácter en el campo de texto o elimina un carácter existente." En el método, se debe hacer una verificación de todos los caracteres no numéricos y eliminarlos.

En lugar de comprobar la cadena de por qué no puede usted asigna el valor de teclado numérico como el campo de texto. De manera que el usuario no será capaz de escribir una cadena.

Puede hacerlo mediante el control de la entrada del usuario en el campo y automáticamente eliminar caracteres no coincidentes. Crear un método IBAction:

- (IBAction)validateEntry:(id)sender;

A continuación, adjuntarlo a Editar caso del campo de texto cambiado. El método será llamado cada vez que el texto en el campo cambia, ya sea de la tipificación de usuario o desde el usuario pegar texto en.

Dentro del método se puede examinar el texto y eliminar los caracteres ofensivos o, más cortésmente, actualizar un UILabel que le dice al usuario que han entrado en caracteres no válidos y desactivar cualquier botones de envío hasta que se ha fijado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top