15
我有簡單的UIWebView與加載的HTML。 我想顯示指向選定文本的PopoverView。 我可以得到UIMenuController的menuFrame並使用它的矩形,但結果並不像我需要的那樣精確。 我可以計算屏幕大小,並得到menuFrame矩形,然後我可以假設選擇可能被發現的地方,但我想知道選定的文本在哪裏。 一般可能嗎?如何獲取UIWebView中選定文本的座標(CGRect)?
我有簡單的UIWebView與加載的HTML。 我想顯示指向選定文本的PopoverView。 我可以得到UIMenuController的menuFrame並使用它的矩形,但結果並不像我需要的那樣精確。 我可以計算屏幕大小,並得到menuFrame矩形,然後我可以假設選擇可能被發現的地方,但我想知道選定的文本在哪裏。 一般可能嗎?如何獲取UIWebView中選定文本的座標(CGRect)?
您可以在所選文本的範圍對象上使用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)}你能幫我嗎 – dineshprasanna
如果我們設置UIWebView的scalesPageToFit屬性,那麼它不會按預期工作。任何其他解決方案相同。? – Girish
它是否適用於pdf文件? –