¿Cómo se oculta el texto en un campo de contraseña en una aplicación de iPhone?

90

Tengo un campo de contraseña en mi aplicación (UITextField). Cuando el usuario ingresa texto en el campo, quiero que se muestre en *lugar del texto que ingresaron.

Intenté usar el UIControlEventEditingDidEndde UITextFieldpero solo muestra uno *al final al editar, pero quiero que muestre la *s tan pronto como se ingrese cualquier texto, como en cualquier campo de contraseña de correo electrónico en línea. ¿Cómo puedo conseguir el comportamiento deseado?

TheNeil
fuente

Respuestas:

174

Realmente no entiendo tu pregunta, pero supongo que quieres un UITextField que muestre puntos para los caracteres, lo que hace cada campo de contraseña en el iPhone. Para esto, desea establecer la propiedad secureTextEntry de ese UITextField (UITextField tiene dicha propiedad porque cumple con el protocolo UITextInputTraits) en YES:

textfield.secureTextEntry = YES;
drvdijk
fuente
7
¿Puedo configurar otros caracteres en lugar de puntos?
Vineesh TP
154

También puede configurar esto en Interface Builder. Seleccione su campo de texto y verifique la configuración "segura" en el inspector.

configuración segura en Interface Builder

Nathaniel Martín
fuente
7
Algo tan simple, pero no muy obvio.
Brian Moeskau
Gracias, normalmente no veo las instrucciones del constructor de interfaz de usuario.
0

Puede agregar una ruta de clave secureTextEntry de tipo Boolean y marcarla en los atributos de tiempo de ejecución definidos por el usuario en el Inspector de identidad.

ingrese la descripción de la imagen aquí

Vivekanandan
fuente
Debería preferir la opción "Seguro" debajo de los atributos a usar atributos de tiempo de ejecución como este.
axiixc
0

Si está utilizando la última versión de Xcode, (versión 9), haga clic en el UITextField en el que desea establecer la entrada como contraseña, luego haga clic en el inspector de atributos y marque "Entrada de texto segura".

Donna
fuente
0

Swift 3.3

textfield.isSecureTextEntry = true
Mike.R
fuente