【发布时间】:2011-10-29 00:04:56
【问题描述】:
我有一个自定义的TextInput 来监听FocusEvent.FOCUS_IN 和FocusEvent.FOCUS_OUT 事件:
textDisplay.addEventListener(FocusEvent.FOCUS_IN, onFocusInHandler);
textDisplay.addEventListener(FocusEvent.FOCUS_OUT, onFocusOutHandler);
我的onFocusInHandler 函数基本上删除了告诉用户输入值的“提示视图”,而onFocusOutHandler 则相反。
例如,如果 TextInput 文本被退格为空白值,并且用户单击 TextInput 框外,则会在 TextInput 中显示“请输入值”浅灰色提示。
在用户单击我们的自定义“清除”按钮之前,这一切正常。清除按钮将文本设置为“”,我可以告诉FocusEvent.FOCUS_OUT 已收到,因为提示文本设置为可见(未在其他任何地方设置)。问题是,光标仍然在框中,就好像它仍然有焦点一样,所以如果用户立即开始输入,提示文本“请输入一个值”和用户输入的文本都会出现在上面灰色的文字,看起来很丑陋且难以阅读。
如果 TextInput 实际上没有失去焦点,为什么它会收到 FocusEvent.FOCUS_OUT 事件?有什么办法可以解决这个问题吗?
【问题讨论】:
-
您要禁用该组件吗?我的经验是,如果 Spark TextInput 被禁用,它在失去焦点时无法正确地做出应有的视觉变化。
-
您使用的是 Spark TextInput 还是 MX TextInput?默认情况下,spark TextInput 不这样做吗?只需使用提示属性。 help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/…
标签: apache-flex actionscript flex4.5