将插入符位置设置为文本控件中的特定行

问题描述

我有一个输入屏幕,用户可以在其中输入SWT Text控件。当用户输入内容时,我将处理文本并将其显示在单独的read_only结果文本控件中。结果文本的长度可能比输入文本长几个字符。

我想放置结果文本控件显示,以便它始终显示用户当前在输入控件中键入的行。

我可以使用ivTextInput.getCaretLineNumber()获得输入的插入符行,但是没有相应的方法来设置插入符行号。

我可以使用ivTextResult.setSelection(ivTextInput.getCaretPosition())设置插入符号在结果中的位置,但是我对输入文本进行的处理可能会将结果文本“推”到不滚动就不可见的位置。>

理想情况下,结果文本显示将与输入文本显示结合在一起,以便用户键入的内容/位置始终与结果文本对齐。

我尝试跟踪处理过程中添加的额外字符,但是用户可以在文本控件中的任何位置添加文本,这样导致的混乱是无法使用的,再加上SWT文本控件处理新行的方式会导致计算失败。

解决方法

Text有一种setTopIndex方法,用于设置控件顶部可见的行:

public void setTopIndex(int index)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...