在ios上,TextInput让人觉得很奇怪。以下代码:
<s:TextInput id="password" width="100%" displayAsPassword="true"
needsSoftKeyboard="true"
prompt="Password"
softKeyboardType="default"
returnKeyLabel="done"
autoCorrect="false"
skinClass="spark.skins.mobile.TextInputSkin"
/>当我选择textInput时,提示符按预期消失,但第一个字符是自动选择的。当按下第二个键时,第一个字符将被删除。只有在键入第一个字符并且该字段有提示消息时,才会发生这种情况。"autoCorrect“似乎什么也做不了。
有没有人知道解决这个问题的办法?我查看了SkinnableTextBase类,但没有找到任何错误代码。
这个问题从Flex 4.6开始。
发布于 2012-06-07 17:50:44
花了几个小时研究Flex代码后,我终于意识到Flex不是问题所在。Air 3.2 (也在Air 3.3测试版中)会出现此问题。如果我用Air 3.1编译,一切都很好。
我已经尝试了各种方法,但似乎没有办法在Air3.2 +中修复它。我检查了我的其他项目,似乎我所有使用Air3.2编译的应用程序都有类似的问题:
更新
问题出在Flex SDK的SkinnableTextBase.as中的某个地方。
当调用textDisplay_changeHandler(event:Event)时,invalidateSkinState()会导致问题。如果您将皮肤的状态设置为nothing (""),它将正常工作:
skin.currentState = "";
invalidateSkinState();问题是主题没有正确更新(它是一个h@ck)。
如果在CSS中将"showPromptWhenFocused"设置为false,则问题不会发生;唯一的副作用是,当您选择textInput时,提示会消失。
s|TextInput
{
skinClass:ClassReference("spark.skins.mobile.TextInputSkin");
showPromptWhenFocused: false;
}希望这对某些人有帮助。
发布于 2012-12-20 14:36:35
使用FB4.6和Air3.5的spark皮肤解决了Textinput的飞行问题。我认为真正的问题来自Air。但现在软键盘在聚焦时不能激活。
<s:TextInput id="mail" softKeyboardType="email" skinClass="spark.skins.spark.TextInputSkin" />发布于 2012-06-18 12:14:20
您正在滚动TextInput吗?如果没有,你可以使用新的Flex4.6 TextInput移动皮肤。新的皮肤使用StageText,这可能会纠正您的问题。删除属性skinClass="spark.skins.mobile.TextInputSkin“,它应该默认为新的皮肤。
<s:TextInput id="password" width="100%" displayAsPassword="true"
needsSoftKeyboard="true"
prompt="Password"
softKeyboardType="default"
returnKeyLabel="done"
autoCorrect="false"
/>注意:如果您滚动TextInput,并且您必须像现在一样使用Flex4.5移动皮肤,则StageText不能正确呈现。
https://stackoverflow.com/questions/10913156
复制相似问题