Xamarin.forms: Wenn die IsPassword-Eigenschaft des Eintrags programmgesteuert geändert wird, wird der Text auf dem Bildschirm in der Mac-App nicht maskiert / demaskiert

Erstellt am 2. Apr. 2018  ·  3Kommentare  ·  Quelle: xamarin/Xamarin.Forms

Beschreibung

Wenn die IsPassword-Eigenschaft des Eintrags in Xamarin Forms dynamisch geändert wird, wird dies in der in Xamarin Forms integrierten Xamarin Mac-App nicht berücksichtigt.

Schritte zum Reproduzieren

  1. Erstellen Sie einen Eintrag mit dem Namen Kennwort in der Xamarin Forms-App
  2. Setzen Sie die IsPassword-Eigenschaft in Xaml auf true.
  3. Erstellen Sie mit dem Click-Handler toggle_clicked eine Schaltfläche mit dem Namen toggle
  4. Ändern Sie im Handler das Kennwort.IsPassword = false;
  5. Fügen Sie dem Eintrag Text hinzu
  6. Klicken Sie auf die Umschaltfläche

Erwartetes Verhalten

Text in der Passworteingabe sollte entlarvt werden

Tatsächliches Verhalten

Der Text im Eintrag ist weiterhin maskiert
Auch umgekehrt funktioniert es nicht wie erwartet

Hinweis: Dies geschieht nur unter Mac (iOS, Android und UWP sind damit gut).

Grundinformation

  • Version mit Problem: Xamarin Forms: 2.5.0.280555
  • Letzte bekannte gute Version:
  • IDE: Visual Studio für Mac
  • Plattform-Ziel-Frameworks:

    • iOS:

    • Android:

    • UWP:

    • Mac: 4.2.1.28

  • Android Support Library Version:
  • Nuget-Pakete:
  • Betroffene Geräte: Mac App

Screenshots

Reproduktionslink

6 low impact macOS bug

Alle 3 Kommentare

Ich habe das gleiche Problem, es passiert nur auf dem Mac. Ich habe es mit WPF und GTK getestet und funktioniert einwandfrei.

Dies liegt daran, dass dieser Code nicht implementiert ist . Leider ist die Implementierung unter macOS nicht trivial, da unter Mac das Steuerelement "Kennwort ein" ( NSSecureTextField ) eine völlig separate Klasse vom Steuerelement "Kennwort aus" ( NSTextField ) ist. Um dies in EntryRenderer implementieren, muss das native Steuerelement jedes Mal neu erstellt werden, wenn sich IsPassword ändert.

Obwohl NSSecureTextField das Entfernen der Aufzählungszeichen unterstützt (siehe -[NSSecureTextFieldCell echosBullets] ), ist es eine schlechte Idee, das zu verwenden, um "Passwort aus" zu implementieren, da das Setzen von echosBullets auf false die anderen Verhaltensweisen nicht entfernt von NSSecureTextField (z. B. die Unfähigkeit, daraus zu kopieren).

@rmarinho Ich habe gerade die Implementierung dieses Problems für MacOS hinzugefügt.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen