Xamarin.forms: A propriedade IsPassword de Entry, quando alterada de forma programática, não está mascarando / desmascarando texto na tela no aplicativo Mac

Criado em 2 abr. 2018  ·  3Comentários  ·  Fonte: xamarin/Xamarin.Forms

Descrição

Quando a propriedade IsPassword da entrada é alterada dinamicamente no Xamarin Forms, ela não é refletida no aplicativo Xamarin Mac integrado com Xamarin Forms.

Passos para reproduzir

  1. Crie uma entrada chamada senha no aplicativo Xamarin Forms
  2. Defina a propriedade IsPassword como true em Xaml.
  3. Crie um botão chamado toggle com o manipulador de cliques toggle_clicked
  4. No manipulador, altere a senha.IsPassword = false;
  5. Adicione algum texto na entrada
  6. Clique no botão de alternância

Comportamento esperado

o texto na entrada da senha deve ser desmascarado

Comportamento Real

O texto na entrada ainda está mascarado
Mesmo o vice-versa não está funcionando como o esperado

Nota: Isso acontece apenas no Mac (iOS, Android e UWP são bons com isso)

Informação básica

  • Versão com problema: Formulários Xamarin: 2.5.0.280555
  • Última versão válida:
  • IDE: Visual Studio para mac
  • Estruturas de destino da plataforma:

    • iOS:

    • Android:

    • UWP:

    • Mac: 4.2.1.28

  • Versão da Biblioteca de Suporte Android:
  • Pacotes Nuget:
  • Dispositivos afetados: Mac App

Capturas de tela

Link de reprodução

6 low impact macOS bug

Todos 3 comentários

Estou tendo o mesmo problema, isso só acontece no Mac. Eu testei com WPF e GTK e funciona bem.

Isso ocorre porque esse código não foi implementado . Infelizmente, implementar isso no macOS não é trivial, porque no Mac, o controle "senha ativada" ( NSSecureTextField ) é uma classe completamente separada do controle "senha desativada" ( NSTextField ). Implementar isso em EntryRenderer exigiria que ele recriasse seu controle nativo toda vez que IsPassword fosse alterado.

Embora NSSecureTextField suporte a remoção de marcadores (consulte -[NSSecureTextFieldCell echosBullets] ), usar isso para implementar "senha desativada" é uma má ideia, porque definir echosBullets como falso não remove os outros comportamentos de NSSecureTextField (como a incapacidade de copiar dele).

@rmarinho Acabei de adicionar a implementação deste problema para MacOS.

Esta página foi útil?
0 / 5 - 0 avaliações