最終更新:2012-10-01 (月) 03:22:01 (4512d)
Cocoa/イベント処理
方法
- 主な方法は3種類。
ターゲット-アクション
IBAction
- Interface BuilderからObjective-Cのクラスにイベントを通知するときに使う。
Cocoa/デリゲート
- イベント処理を移譲するクラスをきめておき、そのクラスにメソッドが実装されていればそのメソッドが実行される。
- delegateプロパティにセットするsetDelegateメソッドがある。
- UITextFieldを画面下に表示されているView ControllerにドラッグしてOutletのところにあるdelegateを指定するとUITextFieldのデリゲートがView Controllerに接続される
Cocoa/通知
- Cocoa/デリゲートはひとつのオブジェクトにしか通知できないが、NSNotificationCenterを使うと複数オブジェクトに通知できる
Cocoaバインディング
Interface Builder関係
IBOutlet
- コード上でGUIのオブジェクトを参照するための変数。
Xcode 4.0でIBAction/IBOutletの追加
- XIB(またはStoryboard)のInterface Builderの画面で、Xcode/Assistant Editorを表示
- 右側に表示されたヘッダ(.h)の@interfaceの部分に右ドラッグするとダイアログが表示される
- 名前を入力すると.hと.mに挿入される。
確認
- コントロールを右クリックすると、アウトレットと、イベント(と結びついているIBAction)が表示される。
GUIとの接続
- コントロールを右ドラッグして.hのIBOutletにドロップ→アウトレットと接続
追加
レスポンダオブジェクト
- イベントに応答し、処理できるオブジェクトのこと
- NSResponder/UIResponderはあらゆるレスポンダオブジェクトの基底クラス
レスポンダチェーン
First Responder
- アプリケーションの動作中に発生する、各種のイベントを最初に受け取るオブジェクト
実装
ViewController
- 各画面ごとの処理を記述
AppDelegate
- アプリケーション全体の処理を記述