2009-08-20 6 views
4

私はメインのコントローラクラスに何かが起こったことを伝えるためにカスタムnsviewを取得する方法に問題があります。interface builderカスタムnsview親にアクションを送信

IBOutlet MapView *mapView; 

、私はこのようなマウスクリックを取得していますインタフェースビルダによってインスタンス化され、私のMapViewクラスにされています:

コントローラクラスは、このようなのMapViewのインスタンスを持っている

- (void)mouseDown:(NSEvent *)theEvent { //whatever... 

しかし、これが起こると、コントローラクラスで1つまたは2つの変数を変更する必要があります。どうすればいいですか?

答えて

6

カスタムViewクラスのためのプロトコルを定義し、あなたのコントローラにプロトコルを実装し、ビュークラスにyoullのプロトコルコードを実装して、あなたのビューのデリゲートのプロパティを持っている...そのプロパティが

@property(assign) id <MyProtocol> myProtocolDelegate; 
ようになります。

コントローラは、ビューのデリゲートとして自身を設定できます。プロトコルが正しく実装されている場合は、ビューによって呼び出されたときにメッセージを取得する必要があります。 ここに情報http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocProtocols.html

関連する問題