UITextInputプロトコルからselectionRectsForRange:をどのように実装しますか?誰かがこれを理解しましたか?それは特定のユースケースのニーズに非常に依存していますか?または、このメソッドを呼び出すフレームワークに何かがありますか?
コンパイラを沈黙させるには、もちろんメソッドをスタブアウトするのが適切ですが、nilまたは空のNSArrayを返すと害が発生しますか?
UITextInputプロトコルからselectionRectsForRange:をどのように実装しますか?誰かがこれを理解しましたか?それは特定のユースケースのニーズに非常に依存していますか?または、このメソッドを呼び出すフレームワークに何かがありますか?
コンパイラを沈黙させるには、もちろんメソッドをスタブアウトするのが適切ですが、nilまたは空のNSArrayを返すと害が発生しますか?
WWDC12のセッション220によると、このメソッドは、実装が独自のテキストをレンダリングするUITextViewのサブクラス化をサポートするために追加されました。残念ながら、そのセッションのサンプルコードが利用できないので、実装で何かを見逃していないかどうかを確認したいと思います。
-firstRectForRange:
現在の選択をカバーするすべてのrectを返すことを除いて、実装方法とかなり似ています。
さらにUITextSelectionRect
、このメソッドから配列を返すサブクラス(UITextPosition / UITextRangeのような抽象クラス)を作成する必要があります。containsStart
およびプロパティを正しく計算し、containsEnd
返すすべての選択範囲で1回だけYESを返すようにしてください。これらのプロパティは、選択サイズ変更「パドル」を配置する場所を決定するためにUITextViewによって使用されます。
空の配列(または私が思うにnil)を返すことは、UITextViewが現在の選択に対して選択長方形を描画してはならないことを示します。