ConverterControllerクラスは、convert:というアクションメソッドを1つだけ必要とします。ユーザが「Convert」ボタンをクリックすると、ConverterControllerクラスのインスタンスであるターゲットオブジェクトへ、convert:メッセージが送信されます。
convert:メソッドをConverterControllerクラスに追加するには、太字で示した行をConverterControllerクラスに追加します。
#import <Cocoa/Cocoa.h> |
@interface ConverterController : NSObject { |
IBOutlet NSTextField *amountField; |
IBOutlet NSTextField *dollarField; |
IBOutlet NSTextField *rateField; |
} |
- (IBAction)convert:(id)sender; |
@end |
ファイルを保存します。このメソッドの動作については、後述のセクションで見ていきます。
注: なぜコントローラのここで計算が行われていないのか、疑問に思う方もいるでしょう。余分な通信レイヤがないほうが速くなるのは明らかです。この方法でもまったく問題なくアプリケーションを設計できますが、移植性のためにMVCデザインパターンが作成されました。より複雑なアプリケーションでは、基盤の機能がシステム依存部分を処理していることがあります。コントローラにメソッドconvert:を持たせると、知る必要のあるすべてのビューがこのメソッドを呼び出すことになります。そこからは、異なるオペレーティング用に書かれたさまざまなコントローラが、正しいモデル関数の呼び出しに対処できます。このような点で、これはこの特定のアプリケーション用にAPIを記述するのと同じです。
Last updated: 2008-01-24