es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Autocompletado de nombre de usuario/contraseña en UITextField solo rellena la vista personalizada seleccionada que cumple con UITextInput.

He estado jugando con el autocompletado para mi flujo de registro en iOS, y no puedo hacer que funcione perfectamente.

Tengo una vista personalizada que tiene un UITextField como una de las propiedades y construyo todos mis campos de texto como instancias de esa vista personalizada.

Cuando lo hice por primera vez, no sabía que debía conformarme a UITextInput para que el autocompletado funcionara, pero el autocompletado ya funcionaba casi perfectamente en todo, excepto cuando textContentType = .newPassword. Lo que funcionaba era que podía tocar el administrador de contraseñas al iniciar sesión y iOS completaría AMBOS los campos de nombre de usuario y contraseña para mí, EXCEPTO para el campo .newPassword que no funcionaba en absoluto ni completaba nuevas contraseñas.

Cuando me conformé a UITextInput, el campo de texto .newPassword funcionó más o menos en el sentido de que me permitía abrir el administrador de contraseñas… sin embargo, ahora todos los campos de texto solo completan el UITextField seleccionado y nunca otro. ¡Ahhh, pensé que lo tenía!

Esto está lejos de ser deseable, ya que un usuario podría crear una contraseña y solo se completaría el nombre de usuario, o viceversa. Además, al iniciar sesión, tienes que ingresar dos veces al administrador de contraseñas, uno para el nombre de usuario y otro para la contraseña.

¿Alguna sugerencia para hacer que esto funcione? ¡Gracias!

PD: Parecía que conformarse a UITextInput era solo código de plantilla de todos modos, ya que ya estaba usando un UITextField pero envuelto en una vista principal… lo cual fue confuso pero está bien.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Como experto en tecnología de la información especializado en iOS, Swift, UITextField, autofill y UITextInput, aquí tienes algunos consejos para hacer que el autofill funcione perfectamente en el flujo de registro en iOS:

    1. Asegúrate de cumplir con el protocolo UITextInput para admitir el autofill de contraseñas, específicamente para textContentType = .newPassword. Esto es necesario para habilitar el autofill para nuevas contraseñas.
    2. Al cumplir con UITextInput, es posible que debas manejar el llenado manual de todos los campos de texto, ya que es posible que ya no se llenen automáticamente. Esto se debe a que la implementación predeterminada de fillPassword(_:for:) solo llena el UITextField seleccionado.

    3. Para llenar manualmente todos los campos de texto, puedes iterar a través de todos tus campos de texto y usar el método fillPassword(_:for:) para llenarlos. También puedes usar passwordRules para garantizar la validez de la contraseña y proporcionar sugerencias de contraseña.

    4. También puedes considerar el uso de una biblioteca como TextFieldEffects, que proporciona UITextFields personalizados que ya cumplen con UITextInput, lo que facilita habilitar el autofill sin tener que implementar código adicional.

    Siguiendo estos consejos, puedes lograr que el autofill funcione perfectamente en el flujo de registro en iOS con tu vista personalizada que tiene un UITextField como una de las propiedades, y asegurarte de que tanto el nombre de usuario como los campos de contraseña se completen correctamente.

Comments are closed.