0

私は持っています。データプロバイダーとして arraylist を提供しています。私の質問は、Enter キーを使用してアイテムを選択すると、なぜ ing の場所に移動するのかということです。また、キーボードからスペースを押すと、再び ing の場所に移動します。どうすればこれを修正できますか? ありがとう

protected function onInputKeyDown(e:KeyboardEvent):void
    {
      if(e.keyCode == 13)
      {
        AddPath(cb.textInput.text);
        cb.dataProvider = recentList;        
      }     
    }

ここで recentList はバインド可能な ArrayList です。ComboBox に何か入力して Enter キーを押すたびに、ComboBox のテキスト領域の先頭にカーソルが移動します。AddPath 関数は、新しいデータを recentList に追加するだけです。

4

1 に答える 1

0

cb.dataProvider = recentList; を設定すると、基本的に、前のリストをオーバーライドしてカーソルをリセットする新しいポインターを割り当てています。

cb.dataProvider = recentList; を実行した後、選択したアイテムを含む変数を作成し、クリック/入力時に ComboBox をそのアイテムに手動で設定できるはずです。

protected function onInputKeyDown(e:KeyboardEvent):void
{
    if(e.keyCode == 13)
    {
        var selectedItem:String = cb.selectedItem
        AddPath(cb.textInput.text);
        cb.dataProvider = recentList;   
        cb.selectedItem(selectedItem); 
    }     
}

コードが完璧でない場合は申し訳ありませんが、理論は正しいはずです。

于 2012-08-28T08:52:11.680 に答える