Objective c 在nsviewcontroller中实现拖放
我试图在nsviewcontroller中捕获拖放事件,但是 拖拉 不叫 这是我的密码:Objective c 在nsviewcontroller中实现拖放,objective-c,macos,drag-and-drop,Objective C,Macos,Drag And Drop,我试图在nsviewcontroller中捕获拖放事件,但是 拖拉 不叫 这是我的密码: - (void)viewDidLoad { [self.view registerForDraggedTypes:[NSArray arrayWithObjects:NSTIFFPboardType, NSFilenamesPboardType, nil]]; [super viewDidLoad]; // Do any additional setup after loading the view.
- (void)viewDidLoad {
[self.view registerForDraggedTypes:[NSArray arrayWithObjects:NSTIFFPboardType, NSFilenamesPboardType, nil]];
[super viewDidLoad];
// Do any additional setup after loading the view.
}
- (NSDragOperation)draggingEntered:(id <NSDraggingInfo>)sender{
return NSDragOperationCopy;
}
- (BOOL)prepareForDragOperation:(id )sender {
return YES;
}
-(void)viewDidLoad{
[self.view registerForDragedTypes:[NSArray arrayWithObjects:NSTIFFPboardType,NSFileNameSPOARDTYPE,nil]];
[超级视图下载];
//加载视图后执行任何其他设置。
}
-(NSDragOperation)DragginGeted:(id)发送方{
返回NSDRAGO操作副本;
}
-(BOOL)prepareForDragOperation:(id)发送方{
返回YES;
}
我添加了自定义视图,但它也没有获取事件:
@implementation MyView
- (instancetype)initWithCoder:(NSCoder *)coder
{
self = [super initWithCoder:coder];
if (self) {
[self registerForDraggedTypes:[NSArray arrayWithObjects: NSColorPboardType, NSFilenamesPboardType, nil]];
}
return self;
}
- (NSDragOperation)draggingEntered:(id <NSDraggingInfo>)sender {
return NSDragOperationNone;
}
@end
@实现MyView
-(instancetype)initWithCoder:(NSCoder*)编码器
{
self=[super initWithCoder:coder];
如果(自我){
[self-RegisterOrdRaggedTypes:[NSArray arrayWithObjects:NSColorPboardType,nsFileNamespoardType,nil]];
}
回归自我;
}
-(NSDragOperation)DragginGeted:(id)发送方{
返回nsdragooperationne;
}
@结束
您只是在错误的类上实现了nsdragooperation。NSViewController的用途是什么?我只是在测试拖放,有一个视图控制器,在这个vc中我注册了拖放以供查看。我应该使用自定义视图?嘿,你是对的。。。我已从视图控制器中删除覆盖,因此我的自定义视图现在可以获得拖放事件。