J'ai sous-classé NSCollectionView et j'essaie de recevoir des fichiers glissés à partir du Finder. Je reçois draggingEntered:
et renvoie une valeur appropriée, mais je ne reçois jamais prepareForDragOperation:
(ni aucune des méthodes après cela dans le processus). Y a-t-il quelque chose d'évident qui me manque ici?Accepter les opérations de glissement dans une sous-classe NSCollectionView
code:
- (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;
}
Feels terrible à code; fonctionne très bien. Tant pis! – andyvn22