您如何以编程方式将 Flex TextArea 的插入符号移到末尾?

Posted

技术标签:

【中文标题】您如何以编程方式将 Flex TextArea 的插入符号移到末尾?【英文标题】:How do you programmatically move the caret of a Flex TextArea to the end? 【发布时间】:2010-10-04 21:11:59 【问题描述】:

在从我的代码中附加一些文本后,我试图将 Flex TextArea 中的插入符号移到末尾。我查看了 TextArea 及其底层 TextField 的参考文档,但似乎没有提供处理此问题的方法。

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

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

谢谢。

【问题讨论】:

【参考方案1】:

试试这个

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

【讨论】:

太棒了!这很好用,谢谢。之后我要做的就是 textArea.setFocus()【参考方案2】:

对于寻找 Spark 组件方式来执行此操作的人,Flex 4.5,请使用 selectRange(anchorIndex, activeIndex)

【讨论】:

【参考方案3】:

要将插入符号设置在 textArea 中的任何位置,您需要做的就是

textArea.setSelection(beginIndex, endIndex);

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

【讨论】:

【参考方案4】:

相信你可以直接用

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

【讨论】:

【参考方案5】:

@Paul Stewart verticalScrollPosition 是属性而不是方法,因此您必须像使用字段一样使用它,例如:

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

与 selectionBeginIndex/selectionEndIndex 相比,使用它的优势在于您不必设置焦点。

【讨论】:

【参考方案6】:

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

textArea.verticalScrollPosition = textArea.maxVerticalScrollPosition;

【讨论】:

以上是关于您如何以编程方式将 Flex TextArea 的插入符号移到末尾?的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式获取或设置 Datagrid 中的单元格值

Flex:如何将 S:list 中的 Sqlist 查询绑定到 S:Textarea

以编程方式将 flex spark 数据组滚动到最大数量

如何以正确的方式在 Actionscript 3 / Flex 3 中嵌入图像?

Flex 限制 textarea 中的字符数

在 ActionScript 3.0 中以编程方式检测 Adob​​e Air 和 Adob​​e Flex