0

我有以下 MXML:

<mx:State name="myState">
    <mx:AddChild relativeTo="{myhbox}" position="after">
        <mx:Box verticalAlign="middle" horizontalAlign="center" width="100%" height="100%">
            <mx:Form id="myForm" width="479" verticalScrollPolicy="off" horizontalScrollPolicy="off">
                <mx:FormItem label="My Label:" fontWeight="bold" id="myLabel" direction="vertical">
                    <mx:TextInput id="myTextInput" width="282" />
                        <mx:HBox>
                            <mx:Button label="Go" click="go();" id="goButton" />
                        </mx:HBox>
                </mx:FormItem>
            </mx:Form>
        </mx:Box>
    </mx:AddChild>
</mx:State>

如何使用 <mx:SetProperty/> 将焦点设置在 TextInput 字段上?我尝试了以下方法,但它只会导致该字段被突出显示——光标不会出现在 TextInput 中:

<mx:SetProperty target="{stage}" name="focus" value="{myTextInput}"/>

长话短说,我希望光标出现在该字段中。

更新:我想通了。请参阅评论以获取解决方案。

4

2 回答 2

1

我尽量避免使用 AddChild 状态标签。通常最好将所有这些都放在一个组件中,并在您希望它显示时使用 SetProperty 设置可见和 includeInLayout。

您始终可以覆盖自定义组件中的可见性以将焦点设置到该字段。或者创建一个自定义设置器而不是做同样的事情

public function set show(value:Boolean):void
{
  visible = true;
  includeInLayout = true;
  if (value)
  myFunctionThatSetsTheFocus();
}
于 2009-05-12T20:18:26.343 回答
1

将“creationComplete”添加到 TextInput 并让它调用一个在 TextInput 上设置焦点的方法

于 2010-05-07T21:30:54.070 回答