我有一个如下的组合框实现 - 根据可编辑组合框中的用户输入(最少2个字符),数据提供程序被刷新并打开下拉列表,在用户输入变化时显示不同的数据集。
问题是在下拉菜单打开后,光标会移回到开头。因此,例如,用户键入“ab”,并且想要键入“c”以形成搜索字符串“abc”。由于光标将其位置重新设置为0,因此搜索字符串最终变为“cab”。
这是我尝试过的(不起作用):textInput.mx_internal :: getTextField()。setSelection(index,index);
其中index =用户输入的长度。这将选择从索引到索引的文本(实际上取消选择文本),并且应该将光标放在最后。
有什么想法吗?
答案 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);