У меня есть простой UIWebView с загруженным html. Я хочу показать, что PopoverView указывает на выделенный текст. Я могу получить menuFrame UIMenuController и использовать его прямоугольник, но результат не так точен в углах экрана, как мне нужно. Я могу рассчитать размер экрана и получить прямоугольник menuFrame, а затем я могу предположить, где можно найти выделение, но я хочу точно знать, где находится выделенный текст. Это вообще возможно?
Как получить координаты (CGRect) для выделенного текста в UIWebView?
Ответы (1)
Вы можете использовать функцию 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;
}
person
hwaxxer
schedule
11.10.2011
Я пытался, но он возвращает {(0,0),(0,0)}, не могли бы вы мне помочь?
- person dineshprasanna; 23.03.2013
Если мы установим свойство scalesPageToFit UIWebView, оно не будет работать должным образом. Любое другое решение для того же.?
- person Girish; 18.10.2013
как получить начальный и конечный диапазон выделенного текста в веб-просмотре
- person Rakesh kumar; 03.03.2016