UITextInput プロトコルを採用するカスタム テキスト入力ビューがあります。このビューは UIScrollView に埋め込まれています。UITextinput 採用ビューには、UITextInteraction が含まれています。選択ハンドルを現在の表示領域の端 (上または下) にドラッグすると、ビューがスクロールしてテキストを自動的に選択する必要があります (UITextView など)。これを達成する方法を知っている人はいますか?
UITextInteraction が必要なイベントのデリゲートを介して通知することを期待していましたが、そうではありません (または、この機能を自動的に処理します)。
私は、ユーザーがビューを採用している UITextInput に触れるたびに呼び出される、closestPosition(to point: CGPoint) -> UITextPosition? をインターセプトしようとしました。したがって、選択ハンドルのドラッグ操作を追跡するために使用できます。ユーザーがビューの一番上に到達したら、上にスクロールします。ただし、ユーザーがハンドルを離したとき (タッチが終了したとき) を検出できません。これが発生すると、scrollView はスクロールを停止する必要があります。私の場合、スクロール ビューは一番上までスクロールし続けます。
また、selectionRects(範囲: UITextRange) -> [UITextSelectionRect] をインターセプトしようとしましたが、スクロール中に散発的に呼び出されます。
touchesEnded() も検出できません。UITextInteraction が呼び出しをブロックしているようです。さらに、独自のパン ジェスチャを実装できません。UITextInteraction は、選択操作中にこれもブロックします。
UITextInteraction の使用に成功した人はいますか? この段階では非常に時期尚早のようです。