1

0〜9の数字とバックスペースボタンを含むカスタムキーボードが表示されるテキストフィールドをタップしています。文字列の途中だけでなく、最後のテキストも削除できます。しかし、途中からテキストを削除すると、カーソルが終了位置にジャンプします。テキストを削除している間、カーソルを同じ位置に置いておきたい。できるだけ早く返信し、事前に感謝します。

4

1 に答える 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 に答える