Как мне установить фокус и выделение на TextField? - PullRequest
0 голосов
/ 17 января 2011

Я пытаюсь программно передать фокус вновь созданному TextField, но по какой-то причине setSelection и setFocus не работают. Например, см. Мой тестовый код ниже:

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" creationComplete="_init()">
<mx:Button click="{tf.setSelection(1,2)}" />
<mx:Script>
<![CDATA[
import mx.core.UIComponent;
    public var tf:TextField 


    private function _init():void{

        tf = new TextField();

            tf.text = "abcdefghijk";
    tf.type = TextFieldType.INPUT;
    tf.autoSize = TextFieldAutoSize.LEFT;

    var ui:UIComponent = new UIComponent();
    ui.addChild(tf);
        addChild(ui);
        tf.setSelection(0,1);
        ui.setFocus();

        ui.addEventListener(MouseEvent.MOUSE_DOWN, function():void{
            tf.setSelection(0,3);
        });
    }

]]>
</mx:Script>    
</mx:Application>

Единственный setSelection, который что-либо делает, это 0,3 на MOUSE_DOWN. Я предполагаю, что все это как-то связано с тем, что текстовое поле фокусируется щелчком мыши, но я не могу понять, как это сделать вручную.

Ответы [ 2 ]

1 голос
/ 17 января 2011

При изучении других классов, мотивированных предложением Флориана, я наткнулся на UITextField, который подклассов TextField. Хотя он не реализует интерфейс IFocusManagerComponent, у него есть метод setFocus, который в данный момент работает.

В качестве дополнительного преимущества его можно добавлять непосредственно в контейнер, то есть без необходимости сначала создавать родительский элемент UIComponent.

1 голос
/ 17 января 2011

setFocus работает с компонентами, которые реализуют mx.managers.IFocusManagerComponent. Textfield не является компонентом Flex и не реализует этот интерфейс, поэтому он не работает. На вашем месте я бы использовал TextInput вместо того, чтобы видеть, что вам нужен элемент управления вводом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...