我使用UIWebView
在我的应用程序中显示带有嵌入链接的文本。我有一个方法可以检测UIWebView
中的点击,但我想知道如何检测音符中的文字的哪个字符/部分被点击。
当用户点按文本时,它会打开一个UITextView
同一文本,我想将光标放在点击位置。
到目前为止,我已经弄清楚如何获得X和Y位置如下:
NSInteger xInt = [x integerValue];
NSInteger yInt = [y integerValue] + (int)webView.scrollView.contentOffset.y;
我的文字如下:
UILabel *noteTextLabel = [[UILabel alloc] init];
noteTextLabel.font = [UIFont systemFontOfSize:TEXT_FONT_SIZE_LARGE];
noteTextLabel.text = note.text;
如何根据X和Y位置检测哪个字符被点击?
答案 0 :(得分:0)
你可以在UIWebView中嵌入一些javascript / jQuery来进行点击检测(谷歌如何检测网页中的点击),一旦你知道被点击的div,将它的内容存储在一个知道的位置,如页面上隐藏的div然后使用
提取[webView stringByEvaluatingJavaScriptFromString:@"getClickedDivContents()"];
会吐出你的秘密文本
答案 1 :(得分:0)
我根据this question找出了如何做到这一点。
在viewController
加载UITextView
的{{1}}中,我传递了一个名为pointForCursor
的属性,该属性为CGPoint
,其中包含X和Y,如上所述。
然后在viewWillAppear
中,我运行以下内容:
if (self.pointForCursor.x > 0) {
NSLog(@"Should have point for cursor");
UITextPosition *position=[noteTextView closestPositionToPoint:pointForCursor];
[noteTextView setSelectedTextRange:[noteTextView textRangeFromPosition:position toPosition:position]];
}
注意:我的UIWebView和这个UITextView使用相同大小的字体,因此没有任何顾虑。