1

target-actionの使用と必要性を理解しています。しかし、私はこの「ファーストレスポンダー」という概念に出会いました。誰かがなぜそれが必要なのか説明できますか? ターゲット アクションを使用して実行できないことは何ですか?

4

1 に答える 1

2

アプリでは、さまざまな種類のイベントを最初に受け取るレスポンダー オブジェクトをファーストレスポンダーと呼びます。キー イベント、モーション イベント、アクション メッセージなどを受け取ります。(マウス イベントとマルチタッチ イベントは、最初にマウス ポインターまたは指の下にあるビューに移動します。そのビューはファーストレスポンダーである場合とそうでない場合があります。) ファーストレスポンダーは、通常、アプリが処理に最適であると判断したウィンドウ内のビューです。イベント。イベントを受信するには、レスポンダーはファーストレスポンダーになる意志も示す必要があります。プラットフォームごとに異なる方法でこれを行います

アプリを設計するとき、イベントに動的に応答したいことがよくあります。たとえば、タッチは画面上のさまざまなオブジェクトで発生する可能性があり、特定のイベントに応答するオブジェクトを決定し、そのオブジェクトがイベントを受け取る方法を理解する必要があります。

ユーザー生成イベントが発生すると、UIKit は、イベントの処理に必要な情報を含むイベント オブジェクトを作成します。次に、イベント オブジェクトをアクティブなアプリのイベント キューに配置します。タッチ イベントの場合、そのオブジェクトは UIEvent オブジェクトにパッケージ化された一連のタッチです。モーション イベントの場合、イベント オブジェクトは、使用するフレームワークと関心のあるモーション イベントのタイプによって異なります。

イベントは、それを処理できるオブジェクトに配信されるまで、特定のパスに沿って移動します。まず、シングルトンの UIApplication オブジェクトがキューの先頭からイベントを取得し、処理のためにディスパッチします。通常、アプリのキー ウィンドウ オブジェクトにイベントを送信し、アプリのキー ウィンドウ オブジェクトが処理のためにイベントを初期オブジェクトに渡します。初期オブジェクトは、イベントのタイプによって異なります。

タッチ イベント。タッチ イベントの場合、ウィンドウ オブジェクトはまず、タッチが発生したビューにイベントを配信しようとします。このビューは、ヒット テスト ビューと呼ばれます。ヒット テスト ビューを見つけるプロセスはヒット テストと呼ばれ、「ヒット テストはタッチが発生したビューを返す」で説明されています。doc。

モーションおよびリモート コントロール イベント用。これらのイベントを使用して、ウィンドウ オブジェクトはシェイク モーションまたはリモート コントロール イベントをファーストレスポンダに送信して処理します。ファーストレスポンダーについては、「レスポンダー チェーンはレスポンダー オブジェクトで構成されています」で説明されています。</p>

これらのイベント パスの最終的な目標は、イベントを処理して応答できるオブジェクトを見つけることです。したがって、UIKit はまず、イベントの処理に最適なオブジェクトにイベントを送信します。タッチ イベントの場合、そのオブジェクトはヒット テスト ビューであり、他のイベントの場合、そのオブジェクトはファーストレスポンダです。

詳細については、こちらをご覧ください...

于 2013-07-22T07:31:46.687 に答える