0

我有一个 。我提供 arraylist 作为它的数据提供者。我的问题是为什么当我使用回车键选择任何项目时会移动到 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 回答