Xamarin.forms: 条目的IsPassword属性,如果以编程方式进行更改,则不会在Mac应用程序的屏幕上屏蔽/取消屏蔽文本

创建于 2018-04-02  ·  3评论  ·  资料来源: xamarin/Xamarin.Forms

描述

在Xamarin Forms中动态更改条目的IsPassword属性时,它不会在与Xamarin Forms集成的Xamarin Mac应用程序中得到体现。

重现步骤

  1. 在Xamarin Forms应用程序中创建一个名为password的条目
  2. 在Xaml中将IsPassword属性设置为true。
  3. 使用点击处理程序toggle_clicked创建一个名为toggle的按钮
  4. 在处理程序中,更改密码。
  5. 在条目中添加一些文本
  6. 点击切换按钮

预期行为

密码条目中的文本应取消屏蔽

实际行为

条目中的文本仍被屏蔽
反之亦然

注意:仅在Mac中会发生这种情况(iOS,Android和UWP很好用)

基本信息

  • 有问题的版本:Xamarin形式:2.5.0.280555
  • 上次已知的良好版本:
  • IDE:适用于Mac的Visual Studio
  • 平台目标框架:

    • iOS:

    • 安卓:

    • UWP:

    • Mac:4.2.1.28

  • Android支持库版本:
  • Nuget软件包:
  • 受影响的设备:Mac App

屏幕截图

复制链接

6 low impact macOS bug

所有3条评论

我遇到了同样的问题,它仅在Mac上发生。 我已经使用WPF和GTK测试了它,并且工作正常。

这是因为未实现此代码。 不幸的是,在macOS上实现此功能并非易事,因为在Mac上,“ password on”控件( NSSecureTextField )是与“ password off”控件( NSTextField )完全不同的类。 在EntryRenderer实现此功能将要求它每次IsPassword更改时都重新创建其本机控件。

尽管NSSecureTextField支持删除项目符号(请参阅-[NSSecureTextFieldCell echosBullets] ),但是使用它来实现“ password off”是一个坏主意,因为将echosBullets为false不会删除其他行为。 NSSecureTextField (例如无法复制出来)。

@rmarinho我刚刚为MacOS添加了此问题的实现。

此页面是否有帮助?
0 / 5 - 0 等级