我尝试在编辑器的文本光标位置显示弹出对话框。我怎样才能以像素为单位获取文本光标位置(点)和此时显示弹出对话框?
我想编写一个类似vnc的类似程序,将Mac OS光标移动到通过从Bonjour服务获取数据的协议给出的位置(x,y).问题是我不知道如何移动光标!
我正在和Cocoa合作.
使用div中的line-height属性contenteditable会导致插入符号在移动到第二行后向下移动.对于某些自定义Web字体,这一点更为明显,但也会出现像Arial这样的标准字体.这种行为有解决方法吗?
这显示了第一行的插入符号

第二行的插入符号向下移动

可以找到行为的演示: http ://jsfiddle.net/sGgVR/
编辑:用于测试Safari 6.0.1和Chrome 22.0.1229.94的浏览器
我需要一种滚动到文本框中插入符号位置的方法,无论插入符号在哪里。我遇到的问题与此非常相似:
可以使用 JavaScript 将插入符号滚动到单个 HTML 文本字段内的视图中吗?
我提到的另一个问题的解决方案是在末尾添加一个额外的字符(将插入符位置设置为文本的末尾),然后模拟按退格键(滚动到文本的末尾) 。当用户继续输入时,它可以正常工作,文本可以正确滚动,因为我们总是在字符串末尾添加字符。但是,例如,如果用户单击文本框中的某个位置,它会设置一个新的插入符号位置,并且如果用户然后从新的插入符号位置开始键入,则额外的键/退格解决方案将无法正常工作,因为它总是需要我们到字符串的末尾。
我需要一种在用户打字时滚动到光标位置的方法,无论光标在哪里。更多附加信息:使用 Firefox 时,在我的 Javascript 代码中设置文本框值会滚动到文本框中的最左侧位置,尽管光标位于末尾。可以使用 JavaScript 将插入符号滚动到单个 HTML 文本字段中的视图中的插图吗?表明了我的意思。在 IE、Chrome、Safari 上不会发生这种情况。所以这个问题中提到的问题仅对我来说在 Firefox 中是个问题。有任何想法吗?
使用下面的代码,我将替换包含子字符串的所有字符(如果我的编辑文本包含四个 a,则此处删除所有 a),并且光标位置将转到编辑文本字段中的第一个字符之前。
//getting cursor position
int end = t1.getSelectionEnd();
//getting the selected Text
String selectedStr = t1.getText().toString().substring(end-1, end);
//replacing the selected text with empty String and setting it to EditText
t1.setText(t1.getText().toString().replace(selectedStr, ""));
Run Code Online (Sandbox Code Playgroud)
如何在不更改光标位置的情况下清除光标位置之前的单个字符(如果我的光标位于编辑文本的中间)。
我试图在文本字段/输入框中的光标后添加不可编辑的文本,以实现以下目的:
1)光标前的文本是可编辑的2)光标后的文本不可编辑,并且随着向左/向左的文本的添加/删除而向右/向左移动
输入字段:[editabletexthere {cursorhere} non-editabletexthere]
到目前为止,这是我输入框的代码:
<input id="edit_input" type="text" autocapitalize="off" autocorrect="off" spellcheck="false" autofocus onfocus="this.value = this.value;" value="editabletext" style="width:100%;"></input>
Run Code Online (Sandbox Code Playgroud)
我觉得输入中的值应该放在一个范围内,而第二个范围只需使用contenteditable = false;进行样式化即可。我还想将不可编辑的文本样式化为另一种颜色。任何帮助将非常感激。谢谢。
我已经完成了我的研究并在 StackOverflow 上遇到了这些问题,人们在那里问了同样的问题,但问题是他们想要根据 x 和 y 坐标或左侧的列来获得位置。我想知道光标相对于 div 的 innerHTML 的位置。
例如:
innerHTML = "This is the innerHTML of the <b>div</b> and bla bla bla..."
^
Cursor is here
Run Code Online (Sandbox Code Playgroud)
所以这个案例我想要的结果是 44. 怎么做?
我试图在 GLFW 中拖动一个未装饰的窗口,但遇到了一些事件滞后,即使我正在使用 glfwWaitEvents()
我有一个光标位置回调和一个简单的循环:
// register a cursor position callback
glfwSetCursorPosCallback(win, cursor_pos_callback);
// then loop..
while(!glfwWindowShouldClose(win)) {
glfwWaitEvents();
... some rendering...
glfwSwapBuffers(win);
}
Run Code Online (Sandbox Code Playgroud)
我的光标回调对增量和更新窗口位置进行了一些简单的跟踪。
cursor_pos_callback(GLFWwindow *win, double xpos, double ypos) {
// figure out delta_x and delta_y based on cursor previous position
int delta_x, delta_y;
// update window position
if (window_drag_active) {
int x,y;
glfwGetWindowPos(window, &x, &y);
glfwSetWindowPos(window, x + delta_x, y + delta_y);
}
}
Run Code Online (Sandbox Code Playgroud)
这是我沿直线拖动时增量的样子
delta_x: 10 delta_y: 0 | xpos: 649 ypos: 55
delta_x: …Run Code Online (Sandbox Code Playgroud) 我想知道在键盘命令上完成文本插入后如何更改 Draft.js 中的光标位置。因此,我目前正在使用_handleKeyCommand(cmd)每当用户按下特定按钮时插入自定义文本块。接下来我尝试了以下操作:
currentState = this.state.editorState;
var selectionState = this.state.editorState.getSelection().getStartKey();
this.setState({editorState: EditorState.forceSelection(currentState, selectionState)});
Run Code Online (Sandbox Code Playgroud)
但这一直崩溃并显示错误消息
类型错误:selection.getHasFocus 不是函数
虽然我进口了SelectionState. 那么如何正确更改光标位置(最好是插入之前的位置)以及我在这里做错了什么?
对于常规的EditText,我们可以通过调用getSelectionStart()方法来获取光标位置。在 Jetpack Compose 中,这种可能性适用于 ClickableText,但显然不适用于 TextField 或 OutlinedTextField。
有谁遇到过这个问题并知道如何解决它?