iOS TextInput displayAsPassword不显示AsPassword

我正在构build一个应用程序,可以同时在Android,iOS和桌面上启动。 该应用程序包括一个连接到vBulletin系统的login,我遇到了一个重大问题(客户是坚定的必须修复)。 在iOS上,如果您正在input一个将其displayAsPassword设置为true的TextInput,则它将在input时显示纯文本。 一旦你点击了TextInput,它就会正确显示。

这里是我在Flex中使用的代码

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

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

 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。 我知道默认文本内置,但我需要更多的function比它提供的。

现在,这个问题(密码显示为纯文本,而焦点在现场) 在iOS中存在,并且不会在模拟器中出现。 它可以在Android和桌面上完美工作。 我已经尝试手动重新创buildfunction(可能但不理想,因为caretIndex不是一个TextInput属性),我试着隐藏TextInput并覆盖匹配input长度的字段(不可能,因为TextInput是StageText的)。 我不知道还有什么我可以在这里尝试。 有任何想法吗?

在此先感谢您的帮助。

眼镜:

  • 使用FlashBuilder 4.6来构build和编译(但我也有4.5.1可用)
  • 使用Air 3.1
  • 在OS X Lion上编译
  • testing第一代和第三代iPad
  • 使用Flex SDK 4.6.0