Ios 如何在UIWebView中获取所选文本的坐标(CGRect)?
我有一个加载html的简单UIWebView。 我想显示指向所选文本的PopoverView。 我可以获得UIMenuController的menuFrame并使用它的rect,但结果在屏幕的各个角落并不像我需要的那样精确。 我可以计算屏幕大小并得到menuFrame rect,然后我可以假设在哪里可以找到选择,但我想确切地知道选择的文本在哪里。Ios 如何在UIWebView中获取所选文本的坐标(CGRect)?,ios,uiwebview,coordinates,cgrect,textselection,Ios,Uiwebview,Coordinates,Cgrect,Textselection,我有一个加载html的简单UIWebView。 我想显示指向所选文本的PopoverView。 我可以获得UIMenuController的menuFrame并使用它的rect,但结果在屏幕的各个角落并不像我需要的那样精确。 我可以计算屏幕大小并得到menuFrame rect,然后我可以假设在哪里可以找到选择,但我想确切地知道选择的文本在哪里。 通常可能吗?您可以在所选文本的范围对象上使用javascript函数getBoundingClientRect()。 我就是这样做的: functio
通常可能吗?您可以在所选文本的范围对象上使用javascript函数getBoundingClientRect()。 我就是这样做的:
function getRectForSelectedText() {
var selection = window.getSelection();
var range = selection.getRangeAt(0);
var rect = range.getBoundingClientRect();
return "{{" + rect.left + "," + rect.top + "}, {" + rect.width + "," + rect.height + "}}";
}
在UIWebView的一个类别中,您可以这样使用它:
- (CGRect)rectForSelectedText{
CGRect selectedTextFrame = CGRectFromString([self stringByEvaluatingJavaScriptFromString:@"getRectForSelectedText()"]);
return selectedTextFrame;
}
我已经试过了,但是它返回{(0,0),(0,0)}您能帮我一下吗?如果我们设置了UIWebView的scalesPageToFit属性,那么它就不能正常工作。任何其他相同的解决方案。如何获得webview选定文本的开始和结束范围