Xamarin.forms: La propiedad IsPassword de Entry, cuando se cambia mediante programación, no enmascara / desenmascara el texto en la pantalla en la aplicación Mac

Creado en 2 abr. 2018  ·  3Comentarios  ·  Fuente: xamarin/Xamarin.Forms

Descripción

Cuando la propiedad IsPassword de la entrada se cambia dinámicamente en Xamarin Forms, no se refleja en la aplicación Xamarin Mac integrada con Xamarin Forms.

Pasos para reproducir

  1. Crear una entrada denominada contraseña en la aplicación Xamarin Forms
  2. Establezca la propiedad IsPassword en true en Xaml.
  3. Cree un botón llamado alternar con el controlador de clics toggle_clicked
  4. En el controlador, cambie la contraseña. IsPassword = false;
  5. Agrega algo de texto en la entrada.
  6. Haga clic en el botón de alternar

Comportamiento esperado

el texto en la entrada de la contraseña debe estar desenmascarado

Comportamiento real

El texto de la entrada todavía está enmascarado
Incluso lo contrario no funciona como se esperaba

Nota: Esto sucede solo en Mac (iOS, Android y UWP son buenos con esto)

Información básica

  • Versión con problema: Xamarin Forms: 2.5.0.280555
  • Última versión buena conocida:
  • IDE: estudio visual para mac
  • Marcos de destino de la plataforma:

    • iOS:

    • Androide:

    • UWP:

    • Mac: 4.2.1.28

  • Versión de la biblioteca de soporte de Android:
  • Paquetes Nuget:
  • Dispositivos afectados: aplicación para Mac

Capturas de pantalla

Enlace de reproducción

6 low impact macOS bug

Todos 3 comentarios

Estoy experimentando el mismo problema, solo ocurre en Mac. Lo probé con WPF y GTK y funciona bien.

Esto se debe a que este código no está implementado . Desafortunadamente, implementar esto en macOS no es trivial, porque en Mac, el control de "contraseña activada" ( NSSecureTextField ) es una clase completamente separada del control de "contraseña desactivada" ( NSTextField ). Implementar esto en EntryRenderer requeriría volver a crear su control nativo cada vez que IsPassword cambie.

Aunque NSSecureTextField admite la eliminación de viñetas (ver -[NSSecureTextFieldCell echosBullets] ), usar eso para implementar "contraseña desactivada" es una mala idea, porque establecer echosBullets en falso no elimina los otros comportamientos de NSSecureTextField (como la imposibilidad de copiar).

@rmarinho Acabo de agregar la implementación de este problema para MacOS.

¿Fue útil esta página
0 / 5 - 0 calificaciones