我已经对 NSCollectionView 进行了子类化,并且正在尝试从 Finder 接收拖动的文件。我正在接收draggingEntered:
并返回一个适当的值,但我从来没有收到prepareForDragOperation:
(也没有在此过程中之后的任何方法)。我在这里有什么明显的遗漏吗?
代码:
- (void)awakeFromNib
{
[self registerForDraggedTypes:[NSArray arrayWithObjects:NSFilenamesPboardType, nil]];
}
- (NSDragOperation)draggingEntered:(id <NSDraggingInfo>)sender
{
NSLog(@"entered"); //Happens
NSPasteboard *pboard;
NSDragOperation sourceDragMask;
sourceDragMask = [sender draggingSourceOperationMask];
pboard = [sender draggingPasteboard];
if ([[pboard types] containsObject:NSFilenamesPboardType])
{
NSLog(@"copy"); //Happens
return NSDragOperationCopy;
}
return NSDragOperationNone;
}
- (BOOL)prepareForDragOperation:(id <NSDraggingInfo>)sender
{
NSLog(@"prepare"); //Never happens
return YES;
}