如何在UITextView中以编程方式移动光标?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在UITextView中以编程方式移动光标?相关的知识,希望对你有一定的参考价值。
如果我在UITextField中输入一些文本,在另一个UITextField中输入文本,然后在第一个UITextField中向后点击,我希望光标位于末尾,因此我可以继续键入或按退格键。由于我的文本右对齐,因此有些复杂,因此您需要非常精确地点击现有文本的右侧。
我在UITextField的Touch Down操作中具有以下代码。如果UITextFields可以使用“ Touch Up Inside”操作,那将是完美的,但事实并非如此。这项工作正常,正在寻找有关更无缝实施的一些建议。
编辑:我添加了将tintColor更改为清除然后变回蓝色的功能,这消除了光标移动的短暂视觉效果。
@IBAction func touchDown(_ sender: Any)
Text.tintColor = .clear
DispatchQueue.main.asyncAfter(deadline: .now() + 0.25)
let newPosition = self.Text.endOfDocument
self.Text.selectedTextRange = self.Text.textRange(from: newPosition, to: newPosition)
self.Text.tintColor = .blue
答案
发布答案,因为我上面的编辑代码确实为我的查询提供了合适的解决方案。延迟和光标移动的视觉效果是不希望的,但是可以通过使光标清晰并改回来解决。
//default UI blue
let uiBlue = UIColor(red: CGFloat(0/255.0), green: CGFloat(122/255.0), blue: CGFloat(255/255.0), alpha: CGFloat(1.0))
@IBAction func Touch(_ sender: Any)
Text.tintColor = .clear
DispatchQueue.main.asyncAfter(deadline: .now() + 0.25)
let newPosition = self.Text.endOfDocument
self.Text.selectedTextRange = self.Text.textRange(from: newPosition, to: newPosition)
self.Text.tintColor = self.uiBlue
以上是关于如何在UITextView中以编程方式移动光标?的主要内容,如果未能解决你的问题,请参考以下文章
在 Swift 2 中以编程方式调整 UITextView 的大小以扩大其宽度