プログラムでテキストを追加するだけの狭いUITextView
(高さ約1行)ので、text
ボタンをクリックするときにそのプロパティを設定します。また、カーソル位置を手動で処理selectedRange
し、テキストの変化に合わせてを設定します。テキストが1行しかない限り、すべてうまく機能します。
2行以上のテキストがあり、最初の行にテキストを挿入しようとすると、テキストは正しく挿入され、カーソル位置は正しい位置にありますがUITextView
、一番下までスクロールします。次に、上部に別のテキストを追加すると、「正しい」位置までスクロールします。次に、このパターンは、最後以外の行に入力されたすべてのテキストに対して繰り返され、ボタンが押されるたびにUITextViewが上下にスクロールします。
UITextView scrollRangeToVisible:
また、新しいテキストを設定した後、selectedRangeプロパティを引数として渡して呼び出してみました。それもうまくいきませんでした。
selectedRange
を設定してから0.5秒遅れてようやく設定してみましたtext
。UITextView
その後、正常に機能しますが、最初に0.5秒間下にスクロールした後でのみ機能します。これはsetText
、UITextViewのメソッドが何らかの形で非同期であり、を設定selectedRange
または呼び出した後に完了しscrollRangeToVisible
、UITextViewを目的の方法に再調整することを示しているようです。
何が起こっているのか、どうすれば問題を回避できるのか、誰か教えてもらえますか?
ありがとう!