0〜9の数字とバックスペースボタンを含むカスタムキーボードが表示されるテキストフィールドをタップしています。文字列の途中だけでなく、最後のテキストも削除できます。しかし、途中からテキストを削除すると、カーソルが終了位置にジャンプします。テキストを削除している間、カーソルを同じ位置に置いておきたい。できるだけ早く返信し、事前に感謝します。
user1302553
質問する
2025 次
1 に答える
4
最初にカーソルの初期位置(または選択した範囲の終わり)を取得します。
UITextRange *selectedRange = [textField selectedTextRange];
NSInteger offset = [textField offsetFromPosition:textField.endOfDocument toPosition:selectedRange.end];
textFieldのテキストを変更した後、次のようにUITextPositionを使用してカーソル位置をリセットします。
UITextPosition *newPos = [textField positionFromPosition:textField.endOfDocument offset:offset];
textField.selectedTextRange = [textField textRangeFromPosition:newPos toPosition:newPos];
于 2012-05-14T10:37:20.507 に答える