如果您想使用 UITextView 实现此功能,那么这并不难。必须有一些逻辑来实现这种事情。这里有一些想法。
如果要带下划线的单词,请 从所选单词的矩形中画线。
为了从 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];
希望您对您的要求有所了解。