Responder ChainとFirst Responder
Responder
•イベントを制御し、イベントに応答
•イベントが発生した場合、UIKETはこれらのデータをアプリケーションの応答オブジェクトに送信してイベント処理を行う
•すべての応答オブジェクトがUI応答器から継承されたクラスのインスタンスです.
•たとえば、ユーザーインタフェースアプリケーション、ユーザーインタフェースコントローラ、およびユーザーインタフェースウィンドウオブジェクトを含むすべてのユーザーインタフェースビュー.
•アクティブなメッセージの受信に加えて、応答者はターゲットの不特定のアクションメッセージを受信することもある.
•最初にアクティビティを受信したオブジェクトは、
first responder
と呼ばれます.事件を処理するために?
•応答者は、イベントに対応する方法を過剰に実施しなければならない
•応答者は、UIキットから提供されるイベント情報を使用して、タッチの変化を追跡し、アプリケーションのUIをタイムリーに更新します.
touchesBegan(_:with:)
touchesMoved(_:with:)
touchesEnded(_:with:)
touchesCancelled(_:with:)
Responder Chain
•イベントに基づいてチェーンにリンクを受信する
•イベントを受信するために、応答者は自分が第一応答者になれることを示す必要があります.
•
first responder
から、応答者がイベントを処理していない場合、イベントは、応答者チェーンに接続された次のオブジェクトに転送される(イベントを処理するために適切なオブジェクトを検索する)•メッセージが処理されるまでChainの親に移動(最後まで処理されていない場合はメッセージを破棄)
First Responder
•イベントを最初に受信したオブジェクト
•イベントの処理に最適な応答者
第一応答設定?
UIresponderのサブクラスでは、canBecomeFirstResponder propertyを上書きしてtrueを返すように設定します.
また、UIKETは、受信したイベントの種類に応じて、そのイベントの
first responder
として特定のオブジェクトを指定する.イベントタイプFirst Responder TouchビューPressフォーカスビューShake-MotionUIKEによって指定されたオブジェクト、または直接指定されたリモート制御イベントUIKEによって指定されたオブジェクト、または直接指定された編集メニューメッセージUIKEによって指定されたオブジェクト、または直接指定された
hit-test
イベントがトリガーされると、UIKETは
hit-test
を使用してイベントが発生したビューを検索します.タッチを含むビューレイヤを探し、ラッコレイヤの最も奥にあるサブビューを探します.
first responder 로 지정한다
.その後、First Responderがイベントを処理できない場合は、
Responder Chain
に従ってイベントを送信します.(無効または透明度が0.01未満のサブビューは無視されます.)
コメントドキュメント
https://seizze.github.io/2019/11/26/iOS%EC%9D%98-Responder%EC%99%80-Responder-Chain-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0.html
Reference
この問題について(Responder ChainとFirst Responder), 我々は、より多くの情報をここで見つけました https://velog.io/@jee/Responder-Chain과-First-Responderテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol