Вопрос

У меня есть редактируемый компонент ComboBox, и я хочу сослаться на отображаемый TextInput, чтобы программно выбрать в нем текст.Это очень просто для TextInput:

private function selectNameText():void
{
    nameTextInput.selectionBeginIndex = 0;

    nameTextInput.selectionEndIndex = nameTextInput.text.length;
}

Но я не могу найти способ получить доступ к TextInput редактируемого ComboBox.

Это было полезно?

Решение

Кажется, что ссылка на TextInput для ЭТОТ Причина необязательна, поскольку текст выбран по умолчанию.

Другие советы

Я столкнулся с этой проблемой при использовании ComboBox в качестве объекта DataGrid itemRenderer.Если вам нужно сослаться на TextInput, вы можете переопределить ComboBox и создать метод получения, который возвращает защищенный textInput.В моем случае мне нужно было предотвратить автоматический выбор, который происходит, когда ComboBox доступен для редактирования.Глядя на ComboBox, это происходит во время updateDisplayList, так что это должно сработать:

package com.whatever.controls
{

import mx.controls.ComboBox;

public class EditableComboBox extends ComboBox
{

    public function EditableComboBox()
    {
        super();
    }

    override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
    {
        super.updateDisplayList(unscaledWidth, unscaledHeight);

        if (editable)
        {
            textInput.selectionBeginIndex   = text.length;
            textInput.selectionEndIndex     = text.length;
        }
    }

}
}

Во время события «Создание завершено» в Combobox вы можете получить компонент напрямую:

private function creationCompleteEvt ( evt:FlexEvent ) : void
{
    var targTextInput:UITextInput = UITextInput( myComboBox.getChildAt(2) );
    targTextInput.setSelection( 0, targTextInput.selectionEndIndex );
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top