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

「creationComplete」をTextInputに追加し、TextInputでsetFocusというメソッドを呼び出させます。

于 2010-05-07T21:30:54.070 に答える
1

AddChild 状態タグを使用しないようにしています。通常は、これらすべてをコンポーネントに配置し、表示する場合は SetProperty を使用して visible を設定し、includeInLayout を使用することをお勧めします。

カスタム コンポーネントで visible をいつでもオーバーライドして、フィールドにフォーカスを設定できます。または、同じことを行うよりもカスタムセッターを作成します

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