Tôi đang cố gắng mở rộng NSImageView để tôi có thể ủy quyền kéo/thả trách nhiệm với bộ điều khiển. Tất cả đều hoạt động tốt với một vấn đề mà trình biên dịch hiện đang hiển thị cảnh báo về việc gửi thư đến các đối tượng có id loại. Để giải quyết điều này, tôi cho rằng tôi chỉ đơn giản là sẽ có hậu tố của loại ivar với tên của giao thức. Tuy nhiên, điều này không thành công với thông báo rằng nó không thể tìm thấy định nghĩa cho giao thức.Xác định và sử dụng các giao thức trong mục tiêu-c
#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
Bất kỳ con trỏ nào mà tôi có thể gặp khó khăn? Tôi chắc chắn nó phải là một cái gì đó đơn giản, nhưng tôi khá mới để obj-c.
+1 cho câu hỏi hay. –
các từ khóa là: _forward declaration_. – holex