我有一个用例,用户点击按钮在当前光标位置插入文本。
但是在使用session.insert(cursorPosition, textToAdd)
插入文本后,光标的位置会移动到第一个字符。
我尝试使用以下方法将光标放在最近添加的文本之后,但它没有用。
renderer.scrollCursorIntoView({
row: cursorPosition.row,
column: cursorPosition.column + param.length
}, 0.5)
知道如何实现这个目标吗?
基本上,如果用户不断点击按钮,则应在当前光标位置添加文本,然后在最近添加的文本之后添加,除非用户将光标明确地放在其他位置。
答案 0 :(得分:1)
答案 1 :(得分:0)
有editor.selection.moveTo(row, column)
但插入后您不需要使用它。
选择移动到文档的开头表示代码中的某些内容正在编辑器上调用setValue。 (例如,它可能是一个错误的反应组件重新创建编辑器)但是如果没有看到错误的页面,很难说肯定
答案 2 :(得分:0)
当用户插入文本时,您可以使用goToLine(),它将行和列作为参数,并将光标设置在该位置。
editor.gotoLine(row, column);
答案 3 :(得分:0)
这是你的答案:
ace.edit('editor').moveCursorTo(lineNumber,colNumber);
https://jsfiddle.net/q27ebeeq/130/
刚刚测试过,它的工作原理与预期一致! 它甚至会自动将光标滚动到视图中,尽管控制台警告在将来的版本中这种行为会发生变化。
选择更改后,自动将光标滚动到视图中 将在下一个版本集编辑器中禁用。$ blockScrolling = 无限以禁用此消息
希望这可以解决您的问题。