2009-03-03 17 views
0

Ich habe eine bearbeitbare ComboBox-Komponente und möchte auf den TextInput verweisen, der angezeigt wird, um den darin enthaltenen Text programmgesteuert auszuwählen. Dies ist sehr einfach auf einem TextInput-:Wie kann ich den TextInput einer bearbeitbaren ComboBox referenzieren?

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

    nameTextInput.selectionEndIndex = nameTextInput.text.length; 
} 

Aber ich kann keinen Weg finden, die TextInput- einer bearbeitbaren ComboBox zuzugreifen.

Antwort

1

Es scheint, dass die Bezugnahme auf den TextInput für THIS Grund unnötig ist, da der Text standardmäßig ausgewählt ist.

0

Ich stieß auf dieses Problem, wenn ich eine ComboBox als DataGrid itemRenderer verwendete. Wenn Sie auf den TextInput verweisen müssen, können Sie ComboBox überschreiben und einen Getter erstellen, der den geschützten textInput zurückgibt. In meinem Fall musste ich die automatische Auswahl verhindern, die auftritt, wenn eine ComboBox editierbar ist. Mit Blick auf ComboBox-, dies geschieht während update so sollte dies den Trick:

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

Während der Combobox „Schaffung Complete“ Ereignis, können Sie die Komponente erhalten direkt:

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