您如何以编程方式将Flex TextArea的插入符号移动到最后?

时间:2009-02-02 07:08:24

标签: flex flex3 textarea textfield caret

我正在尝试从我的代码中添加一些文本后将Flex TextArea中的插入符号移到最后。我查看了TextArea及其底层TextField的参考文档,但似乎没有提供任何方法来处理这个问题。

我尝试过的一种方法是将焦点设置到文本区域并调度KeyUp KeyboardEvent,并将事件的键码设置为“End”键,但这不起作用。

关于如何做到这一点的任何想法?

感谢。

6 个答案:

答案 0 :(得分:9)

试试这个

textArea.selectionBeginIndex = textArea.length;
textArea.selectionEndIndex = textArea.length;

答案 1 :(得分:4)

对于寻找Spark组件方式的人来说,Flex 4.5使用selectRange(anchorIndex, activeIndex)

答案 2 :(得分:2)

要将插入符号设置在textArea中的任何位置,只需

即可

textArea.setSelection(beginIndex,endIndex);

如果你设置了beginIndex& endIndex为相同的值(在您的情况下为textArea.text.length),插入符号将放置在该位置。如果将其设置为不同的值,则该范围内的文本将突出显示。

答案 3 :(得分:0)

我相信你可以用

直接设置textarea的滚动条
verticalScrollPosition : Number
textArea.verticalScrollPosition(i);

答案 4 :(得分:0)

@Paul Stewart verticalScrollPosition是一个属性而不是方法,所以你必须使用它类似于一个字段,如:

var newPosition:NUmber = 1;
textArea.verticalScrollPosition = newPosition;

在selectionBeginIndex / selectionEndIndex上使用它的优点是你不必设置一个问题。

答案 5 :(得分:0)

在向TextArea添加文本后,只需添加以下代码:

textArea.verticalScrollPosition = textArea.maxVerticalScrollPosition;