Mam prosty UIWebView z załadowanym html. Chcę pokazać PopoverView wskazał na zaznaczony tekst. Mogę uzyskać menuFrame z UIMenuController i użyć jego rect, ale wynik nie jest tak dokładny w rogach ekranu, ile potrzebuję. Mogę obliczyć rozmiar ekranu i uzyskać menuFrame rect, a następnie mogę przypuszczać, gdzie można znaleźć zaznaczenie, ale chcę dokładnie wiedzieć, gdzie jest zaznaczony tekst. Czy to na ogół możliwe?Jak uzyskać współrzędne (CGRect) dla zaznaczonego tekstu w UIWebView?
15
A
Odpowiedz
15
Możesz użyć funkcji javascript getBoundingClientRect() na obiekcie zakresu wybranego tekstu. To jak to zrobić:
function getRectForSelectedText() {
var selection = window.getSelection();
var range = selection.getRangeAt(0);
var rect = range.getBoundingClientRect();
return "{{" + rect.left + "," + rect.top + "}, {" + rect.width + "," + rect.height + "}}";
}
aw kategorii na UIWebView, można go używać takich jak:
- (CGRect)rectForSelectedText{
CGRect selectedTextFrame = CGRectFromString([self stringByEvaluatingJavaScriptFromString:@"getRectForSelectedText()"]);
return selectedTextFrame;
}
Próbowałem ale zwraca {(0,0), (0 , 0)} Czy mógłbyś mi pomóc? – dineshprasanna
Jeśli ustawimy właściwość scalesPageToFit w UIWebView, to nie będzie działać zgodnie z oczekiwaniami. Każde inne rozwiązanie dla tego samego. – Girish
czy to działa dla pliku pdf? –