ターゲットアクション


ターゲット·アクションは、イベントが発生したときに他のオブジェクトにメッセージを送信するために必要な情報をその中にオブジェクトが保持しているデザインパターンです。保存された情報はデータの二つの項目から成り立っています:アクションセレクタ、呼び出されるメソッドを識別する、そしてターゲット、メッセージを受信するオブジェクトです。イベントが起こった時に送られるメッセージはアクションメッセージと呼ばれます。ターゲットは任意のオブジェクトであっても、フレームワークオブジェクトであっても良いですが、それは、典型的には、アプリケーション固有の方法でアクションメッセージを処理するカスタムコントローラです。


target_action



アクションメッセージを引き起こすイベントは、メッセージを送るオブジェクトがどんなオブジェクトであってもいいのと同じように、何でもよいのです。たとえば、ジェスチャー認識オブジェクトが他のオブジェクトにそのジェスチャーを認識するとアクションメッセージを送信することがあります。ただし、ターゲット·アクション·パラダイムは、最も一般的に、ボタンやスライダーなどのようなコントロールに見られます。ユーザがコントロールオブジェクトを操作すると、指定されたオブジェクトにメッセージを送信します。コントロールオブジェクトは、(AppKit の) NSControl または (UIKit の) Uicontrol のサブクラスのインスタンスです。アクションセレクタとターゲットオブジェクトは両方ともコントロールオブジェクトのプロパティで、AppKit フレームワークの中にあり、コントロールのセル・オブジェクトのプロパティです。


アクションメソッドは、特定の形式でなければなりません。


アクションメソッドは、従来のシグネチャを持つ必要があります。UIKit フレームワークは、署名のいくつかのバリエーションを許可しますが、両方のプラットフォームとも、次のようなシグネチャを持つアクションメソッドを受け入れます。


-(IBAction)doSomething:(id)sender;


型修飾子である IBAction は、アクションとして Interface Builder がその接続目的を認識しているように、空値(void) 戻り値として宣言されたメソッドにフラグを付け、その代わりに使用されます。Interface Builder で表示されるアクション・メソッドの場合、最初クラスのヘッダーファイルでそれを宣言する必要があり、そのクラスのインスタンスはアクションメッセージを受信します。


sender パラメータは、アクションメッセージを送信するコントロール・オブジェクトです。アクションメッセージに応答するときに、アクションメッセージを引き起こすイベントのコンテキストに関する詳細な情報を取得するために、sender に問い合わせることができます。


コードやツールの使用でターゲットとアクションを設定


プログラムまたは Interface Builder 内でコントロール(またはセル) オブジェクトのアクションとターゲットを設定できます。これらのプロパティを設定すると、効果的にアクションを介して、コントロールとそのターゲットに接続できます。Interface Builder 内のコントロールとそのターゲットを接続すると、接続は nib ファイルに保管(アーカイブ)されます。アプリケーションが後で nib ファイルをロードすると、接続が復元されます。


あなたはアクションメッセージのターゲットを nil に設定できます。この場合、アプリケーションは、実行時にターゲットを決定し、第一応答者(ファースト・レスポンダ) にアクションメッセージをまず送信し、それが処理されるまで(それがある場合)、そこからそれは レスポンダチェーンを上って行きます。


ターゲットアクションは iOS と OS X で異なっている


概念的にターゲット・アクション・デザインパターンは、両方のフレームワークで同じですが、UIKit と AppKit フレームワークは、実装の仕方が違います。


- (IBAction)action:(id)sender forEvent:(UIEvent*) event


前提条件の記事


セレクタ
コントロール・オブジェクト

関連記事

レスポンダ・オブジェクト

既知のディスカッション


ターゲット・アクション(ココア・基礎的ガイドの)

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

FunHouse
MenuMadness


目次
Xcode の新機能

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










    トップへ










    トップへ