NSWindow
のカスタムデリゲートを作成します。 CustomWindowはサブクラス化され、NSWindowDelegate
イベントに関する通知を受け取ります。 このCustomWindow
のdelegate
を作成します。NSWindowのカスタムデリゲート
CustomWindow.h
@class CustomWindow;
@protocol CustomWindowDelegate
- (void)method1:(CustomWindow *)sender userInfo:(NSMutableDictionary*) userInfo;
- (void)method2:(CustomWindow *)sender event:(NSEvent *)theEvent;
- (void)method3:(CustomWindow *)sender;
@end
@interface CustomWindow : NSWindow <NSWindowDelegate>
@property (nonatomic) id <CustomWindowDelegate> delegate;
@end
mainDocument.h
#import "CustomWindow.h"
@interface mainDocument : NSDocument
@property (assign) IBOutlet CustomWindow *mainWindow;
@end
mainDocument.m
#import "mainDocument.h"
@implementation mainDocument
- (void)method1:(CustomWindow *)sender userInfo:(NSMutableDictionary*) userInfo
{
...
...
}
- (void)method2:(CustomWindow *)sender event:(NSEvent *)theEvent
{
...
...
}
- (void)method3:(CustomWindow *)sender
{
...
...
}
@end
そのhoweve期待どおりに働い:私は次のコードを試みた
Rその寄付次の警告:
「を保持(または強い)」属性がプロパティ「デリゲート」オン「NSWindowの」
「アトミック」属性から継承されたプロパティと一致しないプロパティ「デリゲート」にしません「NSWindowの」
プロパティの型「ID」から継承されたプロパティは型「ID _Nullable」「NSWindowの」
自動プロパティの合成は、「デリゲート」プロパティを合成しないだろうから継承されたとの互換性がありませ一致。そのスーパークラスによって実装され、意図を認識するために@dynamicを使用します
これらの警告を取り除くにはどうしたらいいですか?
ご協力いただきありがとうございます。
ありがとうございます。 '_one'の2番目のオプションは、NSWindowDelegateと新しいデリゲートプロトコルを組み合わせ、既存のデリゲートを再利用することができました。 – Amrita