メインイベントループ


メインイベントループでは、アプリケーションは継続的に入って来るイベントを、処理してオブジェクトへ送り、その取り扱いの結果として、その外観と状態を更新します。イベントループは、すなわち実行ループです:イベント処理ループで仕事のスケジュールを設定し、実行ループに接続された様々な入力ソースからのイベントの受信を調整します。すべてのスレッドは、実行ループにアクセスできます。メインスレッドを除く、すべてのスレッドでは、実行ループを構成する必要があり、あなたのコードでマニュアルで実行されます。Cocoa アプリケーションでは、メインスレッドのための実行ループーメインイベントループーは、アプリケーション・オブジェクトによって自動的に実行されます。メインイベントループがどのようであろうと、オペレーティング·システムからイベントを受信する主要な入力ソースービューをタップするとか、キーボードを使用してテキストを入力するとかのーユーザのアクションで発生したイベントです。


main_event_loop



アプリケーションオブジェクトを取得し、イベントを送出


アプリケーションが起動された直後、メインイベントループのためのインフラストラクチャを設定します。これは、低レベルのユーザイベントの配信を担当するそれらの基礎となるシステム·コンポーネントとの接続を確立します。アプリケーションは、メインスレッドの実行ループに設置された入力ソースを介してこれらのイベントを受信します。アプリケーションは個別に各イベントを処理する必要があるため、その到着順に、これらの低レベルイベントは、ファーストインファーストアウトのイベントキューに配置されます。


初期インターフェースが画面上に配置されると、アプリケーションはその後、外部イベントによって駆動されます。Application オブジェクトは、イベントキューの一番上のオブジェクトを取得し、イベントオブジェクト(iOS では UIEvent、 OS X 上では NSEvent) に変換し、処理するために、アプリケーション内の他のオブジェクトに送ります。イベントを送っても帰って来た場合、アプリケーションはキュー内の次のオブジェクトをフェッチし、それを送ります。アプリケーションが終了するまで、これを実行し続けます。


コアオブジェクトはイベントに応答し、ユーザーインターフェイスを描画


アプリケーションが起動されると、また、ユーザインタフェースを描画し、イベントの処理を担当しているオブジェクトのコアグループを設定します。これらのコアオブジェクトは、ウィンドウとビューの様々な種類を含みます。アプリケーション・オブジェクトが、イベント·キューからイベントを受け取ると、ユーザイベントが発生したウィンドウに送ります。ウィンドウは、そのための最も適切なハンドラであるビューにイベントを送信します。



最初のビューがイベントを処理しない場合には、レスポンダチェーンを介して、アプリケーション内の他のビューに渡すことができます。


イベントを処理することで、ビューは多くの場合、アプリケーションの外観を変更し、アプリケーションの状態とデータを更新する一連のアクションを開始します。これらのアクションが終了すると、コントロールはアプリケーションに戻り、イベントキューから次のイベントを持って来ます。


前提条件の記事


アプリケーション・オブジェクト
レスポンダ・オブジェクト

関連記事

イベント(iOS)
レスポンダ・オブジェクト

既知のディスカッション


ココアイベント処理ガイド

サンプルコードプロジェクト

(なし)


目次
Xcode の新機能

  • アニメーション
  • コア・アニメーションは力を与える
    アニメーション必要条件
    暗黙・明示にアニメーション
    Platform 毎の Core Animation 統合
  • アプリケーションオブジェクト
  • アプリ Object は外部 delegate に通知
    アプリはアプリオブジェクト持つ
  • コントロールオブジェクト
  • UIKitでActMessageがEventを決定
    AppKitでControlは複数のセルを持つ
  • 座標系
  • 座標系は異なる描画方向を持てる
    ウインドウとビューは独自座標系
  • ドローイングモデル
  • ビューは自分自身を描画
    グラフィックコンテクスト
    描画はビューローカル座標系で
  • イベント(iOS)
  • オブジェクトはビューに触れる指を表現
    タッチオブジェクトの配信は、定義された経路をたどる
    イベントを処理するために4つのメソッドをオーバーライド
    モーションイベントの処理
  • フォーマッタ
  • フォーマッタの設定と適用
    OSXでセルにフォーマッタを添付
  • メインイベントループ
  • アプリケーションオブジェクト取得
    コアオブジェクトはイベントに応答
  • アウトレット
  • ターゲットアクション
  • アクションメソッドは特定の形式
    ツールの使用でターゲット設定
    ターゲットアクションと OS
  • アンドゥ・マネージャー
  • 取り消しの操作はオブジェクトに
    取り消し操作はスタックに
    操作は取り消しグループに合体
    取り消しを要求する方法
    取消マネージャとレスポンダ
    取消を要求ユーザーインタフェース
  • ビュー階層
  • 表示プロパティは、階層の関係定義
    iOS ではウィンドウはビューです
  • ビュー・オブジェクト
  • ビューのの中核プロパティ
    ビューはアニメーションの本質
  • ストーリーボード
  • シーンは唯一のビュー·コントローラとそのビューに対応
    セグエが2つのシーン間の遷移を管理
  • ウインドウ・オブジェクト
  • ウインドウがイベント配布
    iOS のウィンドウオブジェクト
    OS X のウィンドウオブジェクト
  • ペーストボード
  • ペーストボードは多くの項目を保持
    ペーストボードの持続性
  • 環境設定
  • 各ユーザー設定はドメインに属する
    アプリは環境設定の選択を提示
    ユーザーデフォルト設定で OS X
  • レスポンダ・オブジェクト
  • ファーストレスポンダは最初に受信
    レスポンダチェーンと協調イベント















    トップへ