3

したがって、ユーザーが編集できる UITextView がありますが、プログラムで textView に挿入されたテキストもある可能性があり、textView の任意の範囲に挿入できます。現在、これはユーザーが現在作業していた場所からキャレット位置も移動しますが、これは望ましくありません。だからいつでも私はこれをします:

self.textView.text = //some text inserted

キャレットの位置を移動します。では、キャレットの位置が移動しないようにする、またはプログラムによる変更を完全に無視して独立させ、ユーザーの変更に応じてのみ移動する最善の方法は何でしょうか?

4

3 に答える 3

1

最良の答えは、挿入されるテキストを設定することですが、その後、次の方法を使用してキャレット位置を設定します。

textView.selectedRange = NSMakeRange(0,0)

最初の数字は、キャレットを置きたいテキストビューの場所です。どんなテキストを追加しても最初に残しておきたい場合は、次のようにします。ただし、追加されるタイプされていないテキストの周りにのみこれを保持するために、条件を含めることをお勧めします。ユーザーが入力しているときに、キャレットを移動する必要があります。

于 2013-08-03T01:13:38.927 に答える
0

プログラムでテキストを挿入する前に、 UITextView の " selectedRange" プロパティを介して現在の挿入ポイントを取得できます。

新しいテキストの挿入が完了したら、テキスト ビューの選択範囲を挿入前の状態にリセットできます... または、挿入ポイントが挿入された新しいテキスト ブロックの前にあった場合は、挿入されたテキストの長さを考慮した、前のキャレット位置の位置。

于 2013-08-03T01:13:24.863 に答える