【发布时间】:2010-05-02 16:39:03
【问题描述】:
我已将 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;
}
【问题讨论】:
标签: objective-c cocoa macos drag-and-drop nscollectionview