获取插入符矩形内容编辑的UIWebView时,它的一个空行(Get caret rect in co

2019-10-20 09:24发布

出于某种原因,我需要在内容编辑的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 {4,0} RECT ...

有谁知道如何在任何情况下获得插入符矩形(在列表中像素的垂直位置),同时保持它闪烁? 谢谢!

Answer 1:

这个答案固定这个问题对我来说: https://stackoverflow.com/a/6847328/135712

基本上,你需要插入一个新的DOM元素,获得其位置,然后将其删除。



文章来源: Get caret rect in content-editable UIWebView when it's on a blank line