如何设置 Flex ComboBox 光标位置

3
我有一个下拉框的实现,如下- 基于用户输入(至少2个字符)在可编辑的下拉框中,数据提供程序会刷新并打开下拉列表,根据用户输入变化显示不同的数据集。
问题是,当下拉框打开后,光标会移动回到开头。例如,用户键入“ab”,想要输入“c”以形成搜索字符串“abc”。由于光标将其位置重置为0,因此搜索字符串最终变成“cab”。
这是我尝试过的方法(无效):textInput.mx_internal :: getTextField() .setSelection(index,index);
其中index =用户输入的长度。这将从索引到索引选择文本(有效地取消选择文本),并应将光标放置在末尾。
有什么想法吗?
2个回答

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>

0

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

input.selectRange(index, index);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接