1
私はUITextViewに大きく依存するアプリケーションで作業しています。私の理想的な動作は、ユーザーがすぐに二重スペースを押すと、UIButtonのスペースを作るためにテキストカーソルが5スペース先に飛びます。次のコードを実装しましたが、 "quickSpace"領域内の他のすべてのアクションが発生しても、カーソルがジャンプしていないようです。誰でも私が間違っていることを知っていますか?UITextViewでカーソル位置を設定できません
更新:問題は、現在存在する範囲外の点にカーソルを移動しようとしていることだと思います。言い換えれば、誰かが新しいテキストを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にボタンを追加します – Bala