Question

J'ai un composant ComboBox éditable et je souhaite référencer le TextInput qui est affiché, afin de sélectionner par programme le Texte qu'il contient. C'est très simple sur un TextInput:

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

    nameTextInput.selectionEndIndex = nameTextInput.text.length;
}

Mais je ne trouve aucun moyen d'accéder à l'entrée de texte d'un ComboBox modifiable.

Était-ce utile?

La solution

Il semble que le référencement de la raison TextInput pour CECI ne soit pas nécessaire, car le texte est sélectionné par défaut.

Autres conseils

J'ai rencontré ce problème lors de l'utilisation d'un composant ComboBox en tant que composant DataGrid itemRenderer. Si vous devez faire référence à TextInput, vous pouvez remplacer ComboBox et créer un getter qui renvoie le textInput protégé. Dans mon cas, j'avais besoin d'empêcher la sélection automatique qui se produit lorsqu'un ComboBox est modifiable. En regardant ComboBox, cela se produit lors de la mise à jour de la liste 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;
        }
    }

}
}

Pendant la création de la liste déroulante " Création terminée " événement, vous pouvez obtenir le composant directement:

private function creationCompleteEvt ( evt:FlexEvent ) : void
{
    var targTextInput:UITextInput = UITextInput( myComboBox.getChildAt(2) );
    targTextInput.setSelection( 0, targTextInput.selectionEndIndex );
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top