概要

XCode 3用の説明を探すことができなかったので、手探りでCocoa Bindingのサンプルを作成しました。

Introduction to Developing Cocoa Applications Using Bindings: A Tutorial をベースにしています。 詳細は元記事読んでね。


↑Go to Page Top

手順

  • XCodeを起動。
  • 新規プロジェクトを作成。
    • テンプレートはApplication > Ccoa Applicationを選択。
  • Modeと呼ばれるものを作成。
    • プロジェクトに新規ファイルを追加。ファイル名はConvModel?とした。
  • 入力された為替レート、変換元の金額を保持するためのフィールドと レートを元に変換後の金額を計算するメソッドを定義する。ConvMode?.hを開き、以下の様に記述する。
    #import <Cocoa/Cocoa.h>
    
    @interface ConvModel : NSObject {
    	float _amount;
    	float _rate;
    }
    
    -(float)convert;
    
    @end
  • 変換後の金額を計算するメソッドを実装する。ConvModel?.mを開き、以下の様に記述。
    #import "ConvModel.h"
    
    @implementation ConvModel
    
    -(float)convert {
    	return _amount * _rate;
    }
    
    @end
  • 変換後の金額は、為替レート、変換元の金額が入力されたら、自動的に計算させてやります。
    そのための仕掛けを、ConvModel?.mに書き足してあげます。
    +(void)initialize {
    	[ConvModel setKeys:
    		[NSArray arrayWithObjects:@"amount",   @"rate", nil]
    		 triggerChangeNotificationsForDependentKey:@"convert"
    	];
    }
  • プロジェクトファイルからMeinMenu?.nibを開き、Interface Builder(以下IB)を起動する。
  • メニューより、Window > Document Infoを選択。
    • Cocoa Bindingを使用するため、Deployment TargetをMac OS X 10.3に変更します。
  • ウインドウに、キャプションとなるLabelを3つ、入力フィールドとしてTextField?を2つ、変換結果表示先のLabel1つ貼ります。
  • XCodeで作成したConvModel?をIBに追加します。
    • メニューから、File > Read Class Files...を実行し、ConvModel?.hを選択します。
    • IBのライブラリから、Cocoa > Objects & Controllersを開き、その中からObjectをMeinMenu?.nibに貼付けます。
    • Tools > Identity Inspectorを選択して、インスペクタを切り替えます。
  • Colass IdentitのClass欄にConvModel?と書きます。
  • 再び、IBのライブラリから、Objects & Controllersの中のObjectController?MeinMenu?.nibに貼付けます。
    • 名前はConvController?とした。
  • ConvController?ConvModel?を接続します。
    • ConvController?を選択し、コントロールキーを押しながらConvModel?にドロップします。
    • 黒いウインドウから、Outlets > contentを選択します。
  • UIとConvController?間でBindingの設定を行います。
    • メニューより、Tools > Bindings Inspectorを選択し、インスペクタを切り替えます。
  • 為替レートのテキストフィールドを選択し、インスペクタで、
    • (1)Bind toにチェックを付ける。
    • (2)対象のコントローラを選択する。今回はConvController?を選択。
    • (3)Controller Keyは、selectionと入力。おそらく規定値でしょう。
    • (4)Model Key Pathに、rateと入力。
  • 同様に変換元金額のテキストフィールドについても、
    • (1)から(3)は同じ
    • (4)はamountと入力
  • 変換結果表示先のラベルは、
    • (1)から(3)は同じ
    • (4)はconvertと入力
  • MeinMenu?.nibを保存し、XCodeに戻り、コンパイル。