2009-03-03 3 views
0

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

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

    nameTextInput.selectionEndIndex = nameTextInput.text.length; 
} 

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

ответ

1

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

0

Я столкнулся с этой проблемой при использовании ComboBox в качестве элемента DataGrid itemRenderer. Если вам нужно ссылаться на TextInput, вы можете переопределить ComboBox и создать getter, который возвращает защищенный 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; 
     } 
    } 

} 
} 
0

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

private function creationCompleteEvt (evt:FlexEvent) : void 
{ 
    var targTextInput:UITextInput = UITextInput(myComboBox.getChildAt(2)); 
    targTextInput.setSelection(0, targTextInput.selectionEndIndex); 
}