gpt4 book ai didi

ios - 无法在 UITextView 中设置光标位置

转载 作者:行者123 更新时间:2023-11-28 08:07:54 25 4
gpt4 key购买 nike

我正在开发一个高度依赖 UITextView 的应用程序。我的理想行为是当用户快速按下双倍空格时,文本光标将向前跳 5 个空格以为 UIButton 腾出空间。我已经实现了以下代码,但即使在“quickSpace”区域中发生了所有其他操作,光标似乎也不会跳转。有人知道我做错了什么吗?

更新:我认为问题在于我试图将光标跳转到当前存在的范围之外的点。换句话说,有人正在向 UITextView 输入新文本,并且范围设置为光标恰好所在的位置。那是范围的尽头吗?是否可以将光标发送到当前存在的范围之外?

    if(text==" "){  
let now=Date()
if let last=previousSpaceTimestamp
{
if now.timeIntervalSince(last)<0.3
{
//mainTextBox.text=textView.text.appending("hello")
isQuickSpace=true
var checkOffButton: UIButton=createCheckButton()
checkOffButton.backgroundColor=UIColor.green
checkOffButton.frame.size=CGSize(width: 20, height: 20)
//checkOffButton.frame.offsetBy(dx: 0, dy: CGFloat(buttonYPos))
mainTextBox.addSubview(checkOffButton)
buttonYPos=buttonYPos+15
if let currentRange=mainTextBox.selectedTextRange
{
if let newPosition=mainTextBox.position(from: currentRange.start,
offset: 200)
{
mainTextBox.selectedTextRange=mainTextBox.textRange(from: newPosition,
to: newPosition)
}
}
return false
}
}

previousSpaceTimestamp=now

}
else
{
previousSpaceTimestamp=nil
}
return true
}

最佳答案

在主队列中像这样设置 TextView 范围。

DispatchQueue.main.async {
mainTextBox.isEditable = true
mainTextBox.selectedRange = NSMakeRange(2, 0)
}

关于ios - 无法在 UITextView 中设置光标位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44558213/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com