我正在尝试从UIPopoverController中的所选文本的矩形显示UITextView,如何获取所选文本CGRect

谢谢!

最佳答案

我认为[UITextInput selectedTextRange][UITextInput caretRectForPosition:]是您想要的。
[UITextInput selectedTextRange]返回所选字符范围
[UITextInput caretRectForPosition:]返回此输入中字符范围的CGRect
UITextView符合 UITextInput (自iOS 5起),因此您可以将这些方法用于UITextView实例。

将会是这样的。

UITextRange * selectionRange = [textView selectedTextRange];
CGRect selectionStartRect = [textView caretRectForPosition:selectionRange.start];
CGRect selectionEndRect = [textView caretRectForPosition:selectionRange.end];
CGPoint selectionCenterPoint = (CGPoint){(selectionStartRect.origin.x + selectionEndRect.origin.x)/2,(selectionStartRect.origin.y + selectionStartRect.size.height / 2)};

编辑:由于示例代码变得有点难获得,我添加了一个图像以作补充。

10-05 20:03