我想获得当前插入符号在UITextView
中的位置,但似乎没有任何信息。即使the official documentation,我也无法想象如何利用这种方法找到解释。现在我可以知道如何在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
参数表示文本容器中的一个位置;换句话说,它是文本显示视图中后备字符串的索引。