Xamarin.forms: La propriété IsPassword de l'entrée, lorsqu'elle est modifiée par programme, ne masque / démasque pas le texte à l'écran dans l'application Mac

Créé le 2 avr. 2018  ·  3Commentaires  ·  Source: xamarin/Xamarin.Forms

La description

Lorsque la propriété IsPassword de l'entrée est modifiée dynamiquement dans Xamarin Forms, elle n'est pas reflétée dans l'application Xamarin Mac intégrée à Xamarin Forms.

Étapes à suivre pour reproduire

  1. Créer une entrée nommée mot de passe dans l'application Xamarin Forms
  2. Définissez la propriété IsPassword sur true en Xaml.
  3. Créez un bouton nommé toggle avec le gestionnaire de clics toggle_clicked
  4. Dans le gestionnaire, modifiez le mot de passe.IsPassword = false;
  5. Ajoutez du texte dans l'entrée
  6. Cliquez sur le bouton bascule

Comportement prévisible

le texte dans l'entrée du mot de passe doit être démasqué

Comportement réel

Le texte de l'entrée est toujours masqué
Même l'inverse ne fonctionne pas comme prévu

Remarque: cela ne se produit que sur Mac (iOS, Android et UWP sont bons avec cela)

Informations de base

  • Version avec problème: Xamarin Forms: 2.5.0.280555
  • Dernière bonne version connue:
  • IDE: Visual Studio pour Mac
  • Cadres cibles de plate-forme:

    • iOS:

    • Android:

    • UWP:

    • Mac: 4.2.1.28

  • Version de la bibliothèque de support Android:
  • Forfaits Nuget:
  • Appareils concernés: application Mac

Captures d'écran

Lien de reproduction

6 low impact macOS bug

Tous les 3 commentaires

Je rencontre le même problème, cela ne se produit que sur Mac. Je l'ai testé avec WPF et GTK et fonctionne correctement.

C'est parce que ce code n'est pas implémenté . Malheureusement, l'implémentation de cela sur macOS n'est pas triviale, car sur Mac, le contrôle "password on" ( NSSecureTextField ) est une classe complètement distincte du contrôle "password off" ( NSTextField ). L'implémentation de ceci dans EntryRenderer nécessiterait qu'il recrée son contrôle natif à chaque fois que IsPassword change.

Bien que NSSecureTextField prenne en charge la suppression des puces (voir -[NSSecureTextFieldCell echosBullets] ), l'utiliser pour implémenter "password off" est une mauvaise idée, car définir echosBullets sur false ne supprime pas les autres comportements sur NSSecureTextField (comme l'impossibilité d'en copier).

@rmarinho Je viens d'ajouter l'implémentation de ce problème pour MacOS.

Cette page vous a été utile?
0 / 5 - 0 notes