Как установить свойство focus для TextInput, созданного с помощью AddChild?

У меня есть следующий 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>

Как установить фокус на поле TextInput с помощью ‹mx: SetProperty /›? Я пробовал следующее, но это приводит только к выделению поля - курсор не отображается в TextInput:

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

Короче говоря, я хочу, чтобы курсор появился в поле.

ОБНОВЛЕНИЕ: разобрался. См. Комментарии для решения.


person Huuuze    schedule 12.05.2009    source источник
comment
Я понял. Я добавил CreationComplete в TextInput и заставил его вызвать метод, который устанавливаетFocus для TextInput.   -  person Huuuze    schedule 12.05.2009


Ответы (2)


Я стараюсь избегать использования тега состояния AddChild. Обычно лучше поместить все это в компонент и использовать SetProperty для установки visible и includeInLayout, когда вы хотите, чтобы это отображалось.

Вы всегда можете переопределить видимое в своем пользовательском компоненте, чтобы установить фокус на поле. Или создайте собственный сеттер, который делает то же самое

public function set show(value:Boolean):void
{
  visible = true;
  includeInLayout = true;
  if (value)
  myFunctionThatSetsTheFocus();
}
person Sean Clark Hess    schedule 12.05.2009

Добавьте "creationComplete" в TextInput и заставьте его вызвать метод, который устанавливаетFocus для TextInput.

person Huuuze    schedule 07.05.2010