我想要获得UITextView
中的目前插入符号的位置为CGRect
,但似乎没有任何信息。即使是the official documentation,我也无法想象如何利用这种方法并找到解释。现在我可以知道在UITextView
中获取偏移量的方法,而不是CGRect。但是,我真的很想知道CGRect
。如何获得目前插页的CGRect
任何意见,应高度赞赏。 谢谢。
我想要获得UITextView
中的目前插入符号的位置为CGRect
,但似乎没有任何信息。即使是the official documentation,我也无法想象如何利用这种方法并找到解释。现在我可以知道在UITextView
中获取偏移量的方法,而不是CGRect。但是,我真的很想知道CGRect
。如何获得目前插页的CGRect
任何意见,应高度赞赏。 谢谢。
试试这个:
extension UITextView {
var caret: CGRect? {
guard let selectedTextRange = self.selectedTextRange else { return nil }
return self.caretRect(for: selectedTextRange.end)
}
}
,并使用它像这样:
let textView: UITextView = ...
if let caret = textView.caret {
// Do your thing here.
} else {
// Caret is undefined.
}
顺便说一句,你是在正确的轨道上:-)上述的解决方案基于你刚刚提到的UITextInput
方法:
func caretRect(for position: UITextPosition) -> CGRect
返回一个矩形,用于在给定的插入点处绘制插入符号。
UITextPosition
参数代表文本容器中的位置;换句话说,它是在文本显示视图中对支持字符串的索引。
谢谢。我试图解决的问题已经解决,但我仍然不清楚。在你的最后一句话中,究竟是“文本容器”?而且我也无法理解'后援字符串'的含义。你能解释一下吗? –
@KazuyaTomita **支持字符串**存储由文本视图显示的实际文本,*独立*显示当前文本在屏幕中的显示方式(例如,视图宽度,视图高度,线条数量等) 。 'UITextPosition'提供了这个支持字符串的位置/索引。例如:如果文本视图变宽,文本布局可能会使用更少的行改变*,但是*给定的'UITextPosition'索引shoild保留相同。 –
你是指什么意思?它是否像一个数组?你如何将这些索引分配给你解释的支持字符串? –
//rect is an object of CGRect
var rect = TextView.frame
我想知道插入符号的CGRect。它似乎不工作。 –
这是很不清楚你在问什么。链接到的文档中的函数已经返回一个'CGRect'? – Oskar
对不起,我的解释还不够,但是对于position:UITextPosition'的参数是什么样的?我应该通过这种方法?从某种意义上说,没有测量。现在我正在试验它。但是,你知道吗? –
http://stackoverflow.com/questions/9126709/create-uitextrange-from-nsrange?那是你在找什么? “UITextPosition”和“UITextView”之间的链接? – Larme