2

ドキュメントを含む UITextView があります。ユーザーがドキュメントに触れると、挿入ポイント (selectedRange プロパティ) が適切に設定され、UITextView が最初のレスポンダーになります (キーボードが表示されます)。わーい!

プログラムで同じことを行うにはどうすればよいですか? 「文字 1,000 で編集」というタイトルのボタンがあるとします。selectedRange を [1000, 0] に設定してから、textview をファーストレスポンダにします。

問題...

  1. textview.selectedRange セッターは、viewDidAppear から呼び出された場合にのみ効果があるようです。

  2. [textview becomeFirstResponder] は、挿入ポイントをドキュメントの最後に設定します。

したがって、私ができる最善の方法は、最初に FirstResponder になってから、selectedRange を設定することです。ユーザーは、ビューがドキュメントの一番下までスクロールしてから、目的の挿入ポイントまで戻るのを見ることができます。ちょっと醜い。

移行中に「scrollEnabled」フラグと「editable」フラグをハックして、醜さを隠そうとする必要がありますか? または、これを行うより良い方法はありますか?

4

1 に答える 1

0

あなたはハックをして立ち往生しているかもしれません。これはどう:

選択した範囲を設定するときにビューを非表示にして(おそらく、UITextViewの上に同じサイズの別のビューを配置することによって)、醜いスクロールを非表示にします。次に、範囲が選択されたら、viewDidAppearのしばらく後に、ビューを再表示します。

于 2010-06-04T01:11:56.620 に答える