如何在 Flex 4.5 的 TextInput 中控制光标(克拉)位置
Posted
技术标签:
【中文标题】如何在 Flex 4.5 的 TextInput 中控制光标(克拉)位置【英文标题】:How to control cursor (carat) position in TextInput in Flex 4.5 【发布时间】:2011-11-18 02:39:18 【问题描述】:我需要处理图表,然后将它们即时转换为正确的 unicode 表示。例如当用户输入:
Sx
我的应用需要将其替换为:
Ŝ
现在,我已经能够进行替换,没有问题。但问题是,一旦我完成了替换,光标就会转到文本框的开头而不是结尾。当我试图即时更新用户的文本时,这显然是行不通的。
我怎样才能得到它,以便在我替换 TextInput 框中的文本后,光标在右侧而不是左侧?
【问题讨论】:
【参考方案1】:找到了解决办法。
您所要做的就是不要更新整个文本,而是擦除当前内容然后使用:
textInput.appendText()
希望这对其他人有帮助:)
【讨论】:
【参考方案2】:setSelection 方法是设置光标的方式
textInput.setSelection(textInput.text.length, textInput.text.length);
您可以使用TextInput.selectionAnchorPosition
获取当前选择的开始,使用TextInput.selectionAnchorPosition
获取选择的结束
【讨论】:
selectionActivePosition 是一个只读属性,因此不幸的是,您实际上无法将其设置为任何内容。我发现了一些这样的例子,但显然我无法让它们工作:-/【参考方案3】:看看这个 SO 问题:How do you programmatically move the caret of a Flex TextArea to the end?
如果您使用的是 textArea,那么这将起作用(来自所选答案):
textArea.selectionBeginIndex = textArea.length;
textArea.selectionEndIndex = textArea.length;
【讨论】:
我没有使用文本区域。我想我可以尝试添加单行文本区域...【参考方案4】:对于来这里寻求 Spark textInput 解决方案的人来说,这是一种方式:
textInput.selectRange(textInput.text.length, textInput.text.length);
【讨论】:
以上是关于如何在 Flex 4.5 的 TextInput 中控制光标(克拉)位置的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Flex 3 中的 TextInput 上的 keyDownHandler 上设置文本属性
如何允许用户在 Flex TextInput 控件中键入 TAB 字符?