我有下一个应用程序 header :
<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() 函数的命令位于 TextInput 内?
谢谢您的回答
最佳答案
我解决了它,这个问题是因为这是一个组件,是从主菜单调用的,并且在组件出现在屏幕上之前创建菜单的那一刻调度了creationComplete事件。我所做的是附加一个事件处理程序来显示事件,就是这样。
<mx:Canvas width="100%" height="100%" xmlns:mx="http://www.adobe.com/2006/mxml"
creationComplete="init()" creationPolicy="all"
show="focusManager.setFocus(employeeIDTextInput)"
>
非常感谢每一位提出我问题的人...
关于apache-flex - 当应用程序启动时有两种状态时将焦点设置在 TextField 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13958178/