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.