2012-03-13 60 views
0

我使用UIWebView在我的應用程序中顯示帶有嵌入鏈接的文本。我有一種檢測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

我想通了,如何做到這一點的基礎上,this question這將吐出你的祕密div的文字。

在加載了UITextViewviewController中,我傳遞一個屬性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的使用同樣大小的字體,所以沒有任何問題存在。

0

你可以在UIWebView中嵌入一些javascript/jQuery來做點擊檢測(谷歌如何檢測網頁中的點擊),一旦你知道被點擊的div,將它的內容存儲在知道的位置在頁面上隱藏的div然後提取使用

[webView stringByEvaluatingJavaScriptFromString:@"getClickedDivContents()"]; 

+0

謝謝,但我已經知道如何獲得X和Y的位置:) – bryanjclark 2012-03-14 00:11:18