出于某种原因,我需要在内容可编辑的 UIWebView 中获取插入符号的垂直位置。有许多方法可以停止插入符闪烁(例如在创建/删除隐藏节点时),我使用此 javascript/Objective-C 代码:
- (CGRect)caretRect {
NSString *js = @"function f(){ var sel = document.getSelection(); var range = sel.getRangeAt(0).cloneRange(); range.collapse(true); var r =range.getClientRects()[0]; return '{{'+r.left+','+r.top+'},{'+r.width+','+r.height+'}}'; } f();";
NSString *result = [self.webTexteView stringByEvaluatingJavaScriptFromString:[NSString stringWithString:js]];
CGRect rect = CGRectFromString(result);
return rect;
}
不幸的是,当插入符号位于空白行时,此代码返回 {0, 0} {0, 0} 矩形...
有谁知道如何在任何情况下让插入符号变为矩形(以像素为单位列出垂直位置),同时保持它闪烁?谢谢!
最佳答案
这个答案为我解决了这个问题:https://stackoverflow.com/a/6847328/135712
基本上,您需要插入一个新的 DOM 元素,获取其位置,然后将其移除。
关于javascript - 在空白行上获取内容可编辑的 UIWebView 中的插入符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24467062/