NSImageViewを拡張して、ドラッグアンドドロップの責任をコントローラーに委任できるようにしようとしています。コンパイラがタイプIDのオブジェクトへのメッセージの送信に関する警告を表示するという1つの問題で、すべて正常に機能します。これを解決するには、ivarのタイプにプロトコルの名前の接尾辞を付けるだけでよいと思いました。ただし、これは、プロトコルの定義が見つからないというメッセージで惨めに失敗します。
#import <Cocoa/Cocoa.h>
@interface DragDropImageView : NSImageView {
id <DragDropImageViewDelegate> _delegate;
}
@property (readwrite, retain) id <DragDropImageViewDelegate> delegate;
@end
@protocol DragDropImageViewDelegate
@optional
- (NSDragOperation)dragDropImageView:(DragDropImageView *)ddiv validateDrop:(id <NSDraggingInfo>)info;
- (BOOL)dragDropImageView:(DragDropImageView *)ddiv acceptDrop:(id <NSDraggingInfo>)info;
- (void)concludeDragOperation:(id <NSDraggingInfo>)sender;
@end
私が間違っているかもしれないポインタはありますか?単純なものに違いないと思いますが、私はobj-cを初めて使用します。