Je dois faire glisser une ligne de NSTableView contenant un chemin d'image et le déposer sur NSImageView, et l'image de la ligne traînée devrait apparaître dans l'imageview. Aide appréciéeGlisser-déposer de NSTableView à NSImageView
Répondre
D'abord, dans votre table data source, implémentez les méthodes nécessaires pour le glissement des lignes de la table. Vous allez mettre les données représentant la ligne sur le tableau de montage glisser dans un ou plusieurs types de données. Un type que vous utiliserez pour cela est NSFilenamesPboardType
, qui prend un tableau de chemins d'accès.
Ensuite, créez une sous-classe de NSImageView capable de gérer NSFilenamesPboardType
en gouttes. (Vous devrez implémenter des méthodes à partir de the NSDraggingDestination informal protocol.) Ensuite, faites en sorte que votre vue d'image soit une instance de cette sous-classe, au lieu de NSImageView, et register cette vue pour NSFilenamesPboardType
.
Merci beaucoup. Ça a vraiment marché. J'ai enregistré NSImageView et NSTableView pour NSStringPboardType et NSFilenamesPboardType. Ensuite, dans le délégué TableView, j'ai utilisé le code suivant.
- (BOOL)tableView:(NSTableView *)tv writeRowsWithIndexes:(NSIndexSet *)rowIndexes toPasteboard:(NSPasteboard*)pboard
{
NSString *string = [filePath objectAtIndex:[rowIndexes firstIndex]];
[pboard declareTypes:[NSArray arrayWithObject:NSStringPboardType] owner:self];
[pboard setString:string forType:NSStringPboardType];
return YES;
}
Et dans le protocole informel NSImageView NSDragging Destination, utilisé le code suivant.
- (NSDragOperation)draggingEntered:(id <NSDraggingInfo>)sender
{
NSString *str = [[sender draggingPasteboard] stringForType:NSStringPboardType];
myImage = [[NSImage alloc] initWithContentsOfFile:str];
[self setImage:myImage];
[self setNeedsDisplay: YES];
return NSDragOperationCopy;
}
cheers :)
- 1. Colonne de commutateur NSTableView
- 2. NSImageView vide dans le plugin WebKit
- 3. Touches fléchées avec NSTableView
- 4. Mise à jour de NSTableView dans une instance de NSCollectionViewItem
- 5. Défilement dans NSTableView
- 6. NSTableView - Type de source de données NSButtonCell?
- 7. Lien d'URL cliquable dans NSTextFieldCell à l'intérieur de NSTableView?
- 8. NSTableView, plusieurs cellules et liaisons
- 9. Passage de la souris dans NSTableView
- 10. Création d'un NSTableView Affichage d'articles à partir d'un flux RSS
- 11. NSTableView avec des colonnes liées à différentes NSArrayControllers
- 12. Supprimer un objet du tableau dans NSTableView
- 13. Comment surligner une ligne dans NSTableView
- 14. Actualiser NSTableView Après un clic - Non Rafraîchissant
- 15. Animer des lignes dans un NSTableView
- 16. Réorganisation des cellules animées dans un NSTableView
- 17. Sélection multiple dans NSTableView de Cocoa sans clé de commande
- 18. Objectif C - Problème avec NSMutableArray et NSTableView
- 19. Impossible de faire une sélection vide dans NSTableView
- 20. NSTableView n'augmente pas le nombre d'éléments dans la table?
- 21. Comment supprimer tous les éléments d'un NSTableView contrôlé par NSArrayController?
- 22. Filtrage des données dans un NSPopUpButtonCell dans un NSTableView
- 23. Barre NSScrollView ne faisant pas défiler les lignes NSTableView
- 24. Glissez et déposez les fichiers .app dans NSImageView et obtenez le chemin du fichier
- 25. NSTableView répondant au premier clic dans un panneau
- 26. Comment indiquer à NSTableView de ne pas redimensionner toutes les autres colonnes lors de l'affichage/du masquage d'une colonne?
- 27. problème se index de la ligne sélectionnée dans NSTableView avec prédicat de filtre
- 28. Est-il possible d'utiliser les liaisons de Cocoa pour avoir un NSTableView éditable connecté à un NSMutableArray?
- 29. Comment puis-je détecter que le nombre de lignes d'un NSTableView a changé?
- 30. Désactiver la sélection automatique d'une ligne après le remplissage de NSTableView
Il vous suffit de vous inscrire le point de vue de réception (la vue de l'image), et non le point de vue d'envoyer (l'affichage du tableau), pour le type traîné. À moins que vous ne souhaitiez autoriser la suppression sur la vue de table, mais cela nécessite plus de méthodes de source de données. –
Aussi, n'oubliez pas de libérer ce que vous avez allocked. Voir le Guide de programmation de gestion de mémoire pour Cocoa: http://developer.apple.com/documentation/Cocoa/Conceptual/MemoryMgmt/ –
Oui. tu as raison. Je vais l'implémenter. Merci beaucoup encore une fois. :) –