如何设置flex组合框光标位置

时间:2010-03-17 21:39:41

标签: flex combobox cursor

我有一个如下的组合框实现 - 根据可编辑组合框中的用户输入(最少2个字符),数据提供程序被刷新并打开下拉列表,在用户输入变化时显示不同的数据集。

问题是在下拉菜单打开后,光标会移回到开头。因此,例如,用户键入“ab”,并且想要键入“c”以形成搜索字符串“abc”。由于光标将其位置重新设置为0,因此搜索字符串最终变为“cab”。

这是我尝试过的(不起作用):textInput.mx_internal :: getTextField()。setSelection(index,index);

其中index =用户输入的长度。这将选择从索引到索引的文本(实际上取消选择文本),并且应该将光标放在最后。

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

你正在做正确的事。您必须确保TextInput在设置选择索引之前具有焦点

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">


    <mx:VBox>

        <mx:TextInput id="input" />

        <mx:Button label="set cursor" click="setCursor()" />

    </mx:VBox>

    <mx:Script>
        <![CDATA[

            public function setCursor ():void {
                var index:Number = input.text.length;
                input.setFocus();
                input.mx_internal::getTextField().setSelection(index, index);
            }

        ]]>
    </mx:Script>

</mx:Application>

答案 1 :(得分:0)

如果你已经转移到Spark(flex 4)

input.selectRange(index, index);