问题描述
我试图在 UITextView
中显示一个 UIPopoverController
我得到所选文本 CGRect
?
谢谢!
[UITextInput caretRectForPosition:]
解决方案是你要找的。
[UITextInput selectedTextRange]
返回字符中的选定范围
[UITextInput caretRectForPosition:]
返回此输入中字符范围的 CGRect
。
UITextView
符合 (自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)};
编辑:因为示例代码变得有点难以得到,所以我添加了一个补充图片。 / p>
I'm trying to display an UIPopoverController
from the rect of a selected text in an UITextView
, How can I get the selected text CGRect
?
Thanks!
I think [UITextInput selectedTextRange]
and [UITextInput caretRectForPosition:]
is what you are looking for.
[UITextInput selectedTextRange]
returns the selected range in character
[UITextInput caretRectForPosition:]
returns the CGRect
of the character range in this input.
UITextView
conforms to UITextInput
(since iOS 5), so you can use these methods for your UITextView
instance.
It is going to be something like this.
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)};
EDIT : Since the sample code became a little hard to get, I added an image for complementing.
这篇关于如何从UITextView获取所选的文本框架的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!