2012-02-25 14 views
0

デリゲートクラスは、常にNSResponderクラスから継承するクラスであり、delegateNSResponderから継承するクラスでのみ使用できます。 NSMenuNSObjectから直接継承されています。だから、私はにdeletgateが表示されるのはなぜですか? これは、Interface BuilderでオブジェクトをCtrlキーを押しながらクリックした後に表示されるオプションを誤解していますか?私はOutletsReferencing outletsReceived Actionsを参照してください、これらはどういう意味ですか? Xcode 4(10.7.3)を使用しています。NSMenuのデリゲートメンバ

答えて

0

これを見た場所はわかりませんが、完全に完全に間違っています。委任は単なるパターンであり、デリゲートを実装できるオブジェクトの種類に制限はありません。

実際、自分のクラスで委任パターンを使用することをお勧めします。

NSMenuは、delegateプロパティをヘッダーのアウトレットとして宣言しています。そのため、Interface Builderではそのプロパティが表示されます。あなたはそうのような独自のコードで同じ操作を行うことができます。

、Interface Builderで
@interface YourObject : NSObject {} 
@property (weak) IBOutlet id delegate; 
@end 

は、Outletsがあなたのクラスのヘッダで定義されているコンセントに指し、あなたが他のオブジェクトに接続できること。 Referencing OutletsReferencing Actions接続から他のオブジェクトからあなたのオブジェクト。

+0

リンゴのドキュメントに戻って、私は間違っていたことに気がつきました。私はそれで "しばしば"という言葉を読んでいませんでした。 '委任オブジェクトは、しばしば、レスポンダオブジェクト、 のUIKitユーザ・イベントに応答している中のAppKitまたはUIResponderでNSResponderを継承 オブジェクトです。デリゲートは オブジェクトで、その イベントのユーザーインターフェイスの制御が委任されているか、少なくとも アプリケーション固有の方法でイベントを解釈するよう求められています。 – PnotNP

関連する問題