2013-01-31 14 views
0

我是iOS開發新手,這是我的問題。 在我的應用程序中,我有一些looong文本可以顯示,但在這些文本中,我希望某些單詞被加下劃線和「活動」。 我所說的「主動」是指我可以點擊其中一個詞來彈出一個定義或圖片。Ipad dev:在UITextview中彈出單詞

我認爲使用UITextView和UILabel這樣我使用Textview,直到我得到一個活躍的詞(我顯示感謝標籤連接到一個彈出),然後我再次使用Textview。

如果我想這樣的: 唧唧歪歪BLA BLA ACTIVE唧唧歪歪...

我會用: 的TextView標籤的TextView ...

除此之外,我不知道怎麼樣做到這一點,我意識到這是一個非常糟糕的做法。

我的文字和文字都必須在一個XML文件,我不蘇爾約用最好的結構...

+0

你有什麼麻煩?你似乎暗示你已經完成了文本解析,但最後看起來好像你在問怎麼做那部分。你有沒有想過在UIWebView裏面用HTML完成這一切?然後,您可以使用超鏈接而不是UILabels,並且解析和選擇文本將會內置在內。 – Putz1103

+0

我還沒有完成解析。這只是一個想法。 我打算看看UIWebView,看起來不錯!正如我所說,我是iOS開發新手,我甚至不知道UIWebView;) –

回答

0

如果您想使用UITextView的話,就不是那麼多來實現這個功能強硬。必須有一些邏輯來實現這種事情。這裏有一些想法。

如果你想從所選單詞的矩形中加下劃線字draw-line

對於來自獲得的UITextView所選詞,

-(void)textViewDidChangeSelection:(UITextView *)textView 
{ 
    @try 
    { 
     NSLog(@"%@",[textView.text substringWithRange:textView.selectedRange]); 
    } 
    @catch (NSException *exception) 
    { 

    } 
} 

對於顯示再次那個位置使用的UITextView的委託方法- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text,並從該位置,僅僅獲得光標的位置和當前彈出下彈出。像這樣的東西。

AutoCompleteView *autoCompleteView = [[AutoCompleteView alloc] initWithContent:suggestions forText:text]; 
autoCompleteView.delegate = self; 
CGPoint cursorPosition = [textView caretRectForPosition:textView.selectedTextRange.start].origin; 
CGRect frame = CGRectMake(cursorPosition.x, cursorPosition.y+30, 150, 100); 
popoverController = [[WEPopoverController alloc] initWithContentViewController:autoCompleteView]; 
popoverController.delegate = self; 
[popoverController presentPopoverFromRect:frame inView:commentView permittedArrowDirections:(UIPopoverArrowDirectionUp) animated:YES]; 

希望你對你的要求有點想法。