Ocultar contraseña con "•••••••" en un campo de texto

132

En mi aplicación hay un campo de texto en el que el usuario debe ingresar la contraseña y quiero que cuando ingrese un carácter lo cambie a '•' ¿cómo puedo hacer esto?

Clément Bisaillon
fuente

Respuestas:

302

Puede lograr esto directamente en Xcode:

ingrese la descripción de la imagen aquí

La última casilla de verificación, asegúrese de que secureesté marcada.

O puedes hacerlo usando el código:

Identifica si el objeto de texto debe ocultar el texto que se está ingresando.

Declaración

optional var secureTextEntry: Bool { get set }

Discusión

Esta propiedad está configurada falsede manera predeterminada. Al configurar esta propiedad para truecrear un objeto de texto con estilo de contraseña, que oculta el texto que se ingresa.

ejemplo:

texfield.secureTextEntry = true
meda
fuente
1
En el nuevo XCode8 y superior tenemos que agregar secureTextEntry en la columna de atributos de tiempo de ejecución
Balagurubaran
55

en Swift 3.0 o posterior

passwordTextField.isSecureTextEntry = true
kishu mewara
fuente
13

En XCode 6.3.1, si usa un NSTextFieldno verá la casilla de verificación secure.

En lugar de usar el NSTextFieldusoNSSecureTextField

https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSSecureTextField_Class/index.html

Supongo que esto es un cambio Swift / Objective-C ya que ahora hay una clase para campos de texto seguros. En el enlace anterior dice: Available in OS X v10.0 and later. Si sabe más sobre cuándo / por qué / qué versiones de Swift / Objective-C, XCode u OS X esto

usuario3731622
fuente
Para el desarrollo de MacOS, esta es la nueva respuesta correcta
Joseph DeCarlo
12

Swift 4 y Xcode Versión 9+

Se puede configurar a través de "Entrada de texto segura" a través de Interface Builder

Entrada de texto segura marcada mediante captura de pantalla del guión gráfico

Hatim
fuente
Hola, a veces el campo de texto seguro resalta en amarillo con el error de texto "Contraseña segura", ¿hay alguna solución?
Saravanan
1

Para SwiftUI, intente

TextField ("Email", text: $email)
    .textFieldStyle(RoundedBorderTextFieldStyle()).padding()
SecureField ("Password", text: $password)
    .textFieldStyle(RoundedBorderTextFieldStyle()).padding()
phil
fuente
-1

Programáticamente (Swift 4 y 5)

self.passwordTextField.isSecureTextEntry = true
Arunabh Das
fuente
1
Para swift 3 y posteriores, se cambió la sintaxis, consulte las respuestas anteriores.
mojtaba al moussawi
Mi respuesta es para Swift 4
Arunabh Das
2
¿Estás seguro de que se trata de Swift 4? No hay ninguna propiedad o método llamado seguro para un textField ... para swift 4 usamos self.passwordTextField.isSecureTextEntry = true
mojtaba al moussawi