2010-08-04 24 views
1

Essayer de faire fonctionner cela, et je ne sais pas ce que je manque. L'idée est de déposer des images sur un NSTableView afin que je puisse saisir leurs chemins et faire quelques manipulations pour eux. Je peux obtenir la goutte à travailler pour NSPastebouardTypeString, mais je ne peux pas pour la vie de moi l'obtenir pour enregistrer en faisant glisser PNGs du Finder dans la tableview. Qu'est-ce que je rate?Obtenez NSTableView pour vous inscrire déposer à partir de la source PNG

Code Relevent:

- (void)awakeFromNib { 
    [imageTableView registerForDraggedTypes:[NSArray arrayWithObject:NSPasteboardTypePNG]]; 
} 

- (NSDragOperation)tableView:(NSTableView *)aTableView validateDrop:(id <NSDraggingInfo>)info proposedRow:(NSInteger)row proposedDropOperation:(NSTableViewDropOperation)operation { 
    NSLog(@"Validate Drop"); 
    return NSDragOperationEvery; 
} 

- (BOOL)tableView:(NSTableView *)aTableView acceptDrop:(id <NSDraggingInfo>)info row:(NSInteger)row dropOperation:(NSTableViewDropOperation)operation { 
    NSLog(@"Accept Drop"); 
    return YES; 
} 

Répondre

1

fichiers PNG traîné hors du Finder sont pas données PNG. Ils sont fichiers, qui ont leur propre type de tableau. (En tant que fichiers, vous ne voulez pas nécessairement qu'ils soient entièrement chargés en mémoire en cas de chute, n'est-ce pas?: D)

10.4 vous a donné un NSArray de NSStrings en tant que NSFilenamesPboardType. 10.5 et plus tard également vous fournir un tableau de fichier: URL comme NSURLPboardType. Puisque vous utilisez l'ancienne API, this document on 10.5- APIs applies (10.6 remanie complètement l'API de la table de montage pour qu'elle se comporte plus comme celle de l'iOS).

+0

Ok. J'ai mal compris alors. Est-ce que je ne devrais pas utiliser 'NSURLPboardType' ou' NSFileNamesPboardType' dans 10.6? Je n'ai pas vu un 10.6 api comperable. Juste la méthode 'writefiles:', que j'ai comprise comme étant pour glisser, plutôt que de tomber dedans. –