0

編集可能な ComboBox コンポーネントがあり、表示されている TextInput を参照して、その中のテキストをプログラムで選択したいと考えています。これは、TextInput では非常に簡単です。

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

    nameTextInput.selectionEndIndex = nameTextInput.text.length;
}

しかし、編集可能な ComboBox の TextInput にアクセスする方法が見つかりません。

4

3 に答える 3

1

テキストはデフォルトで選択されているため、この理由で TextInput を参照する必要はないようです

于 2009-03-03T20:21:42.680 に答える
0

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;
        }
    }

}
}
于 2009-06-03T15:10:23.223 に答える