Saltar al contenido

¿Cómo alternar una entrada de texto segura UITextField (ocultar contraseña) en Swift?

Indagamos por diferentes espacios para darte la solución a tu inquietud, en caso de alguna inquietud deja la inquietud y contestaremos con mucho gusto.

Usa este código,

iconClick es bool variable, o necesita otra condición, compruébelo,

var iconClick = true

Método de acción ocular:

@IBAction func iconAction(sender: AnyObject) 
        if(iconClick == true) 
            passwordTF.secureTextEntry = false
         else 
            passwordTF.secureTextEntry = true
        

        iconClick = !iconClick
    

Espero que sea útil

Un efecto secundario no deseado de esto es que si el usuario cambia a inseguro y luego espalda para asegurar, el texto existente se borrará si el usuario continúa escribiendo. El cursor también puede terminar en la posición incorrecta a menos que restablezcamos el rango de texto seleccionado.

A continuación se muestra una implementación que maneja estos casos (Swift 4)

extension UITextField 
    func togglePasswordVisibility() 
        isSecureTextEntry = !isSecureTextEntry

        if let existingText = text, isSecureTextEntry 
            /* When toggling to secure text, all text will be purged if the user 
             continues typing unless we intervene. This is prevented by first 
             deleting the existing text and then recovering the original text. */
            deleteBackward()

            if let textRange = textRange(from: beginningOfDocument, to: endOfDocument) 
                replace(textRange, withText: existingText)
            
        

        /* Reset the selected text range since the cursor can end up in the wrong
         position after a toggle because the text might vary in width */
        if let existingSelectedTextRange = selectedTextRange 
            selectedTextRange = nil
            selectedTextRange = existingSelectedTextRange
        
    

Este fragmento está usando el replace(_:withText:) porque activa la .editingChanged evento, que pasa a ser útil en mi aplicación. solo configurando text = existingText debería estar bien también.

Por qué usar un extra var. En el método de acción del ojo botón solo haz lo siguiente

password.secureTextEntry = !password.secureTextEntry

ACTUALIZAR

Rápido 4.2 (según el comentario de @ROC)

password.isSecureTextEntry.toggle()

Aquí tienes las comentarios y calificaciones

Recuerda que puedes compartir este escrito si lograste el éxito.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *