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

技术 · 2018年10月31日 · 84 次阅读

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

  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)
}

<推广> Manico 是一个专门为高效率人士设计的,macOS 平台下的 App 启动与切换工具,使用它将加倍电脑日常使用的效率。

No Comment

Leave a Comment

Click here to cancel reply.

Name (required)

Mail (will not be published) (required)

Website

Email me when someone replied

Submit Comment

如果您对美股 或者 港股也感兴趣, 或者想要了解如何开户, 可以加我wechat: xiaobei006006, 同时也可以拉您进美股交流群哦。
最后的最后 祝大家都有一个美好的投资生活哦。

大家也可以关注【美股指南】公众号, 即可获得《小白投资美股指南(雪球「岛」系列)》电子书

写在最后

友情提示 转载请注明出处: https://investguider.com/topics/244
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册