iOS TextInput displayAsPassword不显示AsPassword

时间:2012-07-10 17:54:04

标签: ios flex actionscript flex-spark

我正在构建一个可以同时在Android,iOS和桌面上启动的应用。该应用程序包含一个附加到vBulletin系统的登录,我遇到了一个重大问题(客户端是坚定的必须修复)。在iOS上,如果要键入其displayAsPassword设置为true的TextInput,则在键入时将显示纯文本。单击TextInput后,它会正确显示。

以下是我在Flex中使用的代码

<s:TextInput id="inputField" width="100%" styleName="loginFields" text="Password" focusAlpha="0" focusEnabled="false" autoCorrect="false" />

然后我将焦点事件附加到运行这些函数的输入字段。

private var defaultText:String = 'Password';

private var passwordDisplay:Boolean = true;



private function focusIn (e:FocusEvent = null):void {
     if (this.inputField.text == this.defaultText){
            this.inputField.text = '';
      }
     if (this.passwordDisplay){
               this.inputField.displayAsPassword = true;
     }
}

private function focusOut (e:FocusEvent = null):void {
     if (this.inputField.text == ''){
               this.inputField.text = this.defaultText;
               if (this.passwordDisplay){
                      this.inputField.displayAsPassword = false;
             }
      }
}

文件中有更多代码,但这是唯一相关的。基本上,在焦点上,它检查文本==默认文本。如果是这样,它会清空该字段。然后将displayAsPassword设置为true。在焦点上,它检查字段是否为空。如果是,则将字段重置为默认值,并将displayAsPassword重置为false。我知道默认文本是内置的,但我需要的功能比它提供的更多。

现在,此问题(密码显示为明文时显示为明文的密码)出现在iOS 中,并且在模拟器中不会出现。它在Android和桌面上完美无缺。我已经尝试手动重新创建功能(可能但不理想,因为caretIndex不是TextInput属性),我试图隐藏TextInput并覆盖与输入长度匹配的'•'字段(因为TextInput是StageText的)。我不确定我还能在这里尝试什么。有什么想法吗?

提前感谢您的帮助。

规格:

  • 使用FlashBuilder 4.6构建和编译(但我也可以使用4.5.1)
  • 使用Air 3.1
  • 在OS X Lion上编译
  • 在第一代和第三代iPad上进行测试
  • 使用Flex SDK 4.6.0

0 个答案:

没有答案