iOS: UITextView 如何取得光标(Caret)当前位置

拿到光标的位置可以做很多事,比如在弹起键盘的时候,如果光标被盖住了,则滚动到光标所在位置,这里需要有三个步骤来达到:

  1. 通过 selectedTextRange 得到当前 UITextView 选中的文字的范围,如果没选中文字,则会代表光标(Caret)当前的位置,如果该值为 nil,说明即没有选中文字,也没有光标(可能内容为空);
  2. 得到 selectedTextRange 的位置以后,就可以调用 careRect(for:) 方法来得到光标的 Rect 了;
  3. 最后调用 scrollRectToVisible 就可以滚动到相应位置。

示例代码如下:

if let selectedTextRange = self.textView.selectedTextRange {
        let caretRect = self.textView.caretRect(for: selectedTextRange.start)
        self.textView.scrollRectToVisible(caretRect, animated: false)
}

释放剪贴板潜力,效率更上一层楼

PasteNow

PasteNow 是一款剪贴板管理工具,它将使你的日常工作更轻松和快捷。你可以通过它存储各种各样的临时数据:文本、链接、图像等等。

No Comment

Leave a Comment