Ipad dev:在UITextview中弹出单词

时间:2013-01-31 14:08:25

标签: iphone ios ipad mobile uitextview

我是iOS开发的新手,这是我的问题。 在我的应用程序中,我有一些looong文本要显示,但在那些文本中,我想要一些词语加下划线和“活跃”。 我的意思是“活跃”是我可以点击其中一个单词来弹出定义或图片。

我想使用UITextView和UILabel这样我使用Textview直到我得到一个活跃的单词(我通过连接到弹出窗口的标签显示)然后我再次使用Textview。

如果我想要这个: bla bla bla bla ACTIVE bla bla bla bla ...

我会用: TextView标签TextView ...

除此之外,我不知道如何做到这一点,我意识到这是一个非常糟糕的做法。

我的文字和文字必须在XML文件中,而且我不会使用最好的结构......

1 个答案:

答案 0 :(得分:0)

如果您想使用UITextView实现此功能,那么它就不那么难了。必须有一些逻辑来实现这种事情。以下是一些想法。

如果你想在所选单词的rect中加下划线的单词draw-line

从UITextView获取选定的单词,

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

    }
}

要显示该位置的弹出窗口,请再次使用UITextView的Delegate方法- (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];

希望您对自己的要求有所了解。