当有两种状态时,应用程序启动时将焦点设置在TextField上

时间:2012-12-19 17:50:42

标签: flex cursor focus state textinput

我有下一个应用程序标题:

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()" creationPolicy="all" enterState="focusManager.setFocus(employeeIDTextInput);">

public function init():void {
    focusManager.showFocusIndicator = true;
    focusManager.showFocus();
    focusManager.setFocus(theTextInput);
}

并且TextInput处于默认状态。但是当应用程序启动时,会聚焦文本字段(蓝色矩形在文本字段周围)但光标不在文本字段内。但是在下一个状态下我有另一个文本输入,当你在状态之间切换时,两个文本输入都按照你的预期正确聚焦,并且光标正确显示在每个文本输入中。

<mx:State name="secondState" enterState="{focusManager.setFocus(anotherTextInput)}">

我的问题是,为什么当应用程序启动时,游标不在init()函数中命令的文本输入内?

感谢您的回答

1 个答案:

答案 0 :(得分:2)

我解决了,问题是因为这是一个组件并从主菜单中调用,并且刚刚在组件出现在屏幕之前创建菜单时调度creationComplete事件。我所做的是附加一个事件处理程序来显示事件,那就是。

<mx:Canvas width="100%" height="100%" xmlns:mx="http://www.adobe.com/2006/mxml" 
       creationComplete="init()" creationPolicy="all"
       show="focusManager.setFocus(employeeIDTextInput)"
       >

非常感谢每一位提出我问题的人......