NSTableView, gérer 2 type de drop
Bonjour.
Voilà pour l'instant j'ai réussi à faire fonctionner mon drag and drop mais sur une seule et mm tableView, hors j'en possède 2
mon deuxième type de drop serait un NSTableViewDropOn.
Le mieux est un exemple, prenez tout simplement iTunes.. Il y a 2 TbView, une pour les listes de lecture et une pour les musiques correspondantes à la liste de lecture sélectionnée.
Ds la TbView des musiques, on peut faire un drag and drop pour déplacer la position d'une chanson sur le tableau (ça c'est fait). Ce que je cherche à faire c'est maintenant pouvoir prendre une chanson et la déplacer ds une autre liste de lecture
Alors comment gérer ces 2 type de drag ?
Merci
Voilà pour l'instant j'ai réussi à faire fonctionner mon drag and drop mais sur une seule et mm tableView, hors j'en possède 2
mon deuxième type de drop serait un NSTableViewDropOn.
Le mieux est un exemple, prenez tout simplement iTunes.. Il y a 2 TbView, une pour les listes de lecture et une pour les musiques correspondantes à la liste de lecture sélectionnée.
Ds la TbView des musiques, on peut faire un drag and drop pour déplacer la position d'une chanson sur le tableau (ça c'est fait). Ce que je cherche à faire c'est maintenant pouvoir prendre une chanson et la déplacer ds une autre liste de lecture
Alors comment gérer ces 2 type de drag ?
Merci
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Quand tu implémente le drag'n drop, il y a deux facettes :
-autoriser/implémenter le drop
-autoriser/implémenter le drag
Et c'est dans les méthodes correspondantes que tu va filtrer un peu : est-ce que le drop est autorisé entre ou sur les lignes ? Le drag peut-il avoir étré initié dans une autre tableview ? Bref, dans ton cas, tout se passe dans la surcharge de tableview:acceptDrop et tableview:validatedrop
+
Chacha
puis
(NSDragOperation)tableView:(NSTableView*)tv validateDrop:(id )info proposedRow:(int)row proposedDropOperation:(NSTableViewDropOperation)op
et enfin
- (BOOL)tableView:(NSTableView*)tv acceptDrop:(id )info row:(int)row dropOperation:(NSTableViewDropOperation)operation
{
Tout ça est réglé pour la tableView principale (là où sont affichés les musiques) donc on peut jouer à déplacer la place d'une musique.
Maintenant je voudrais juste que ma seconde tableView accepte un dropOn de la part de la tableView des musiques
Je ne comprends toujours pas.
Si dans le acceptDrop, tu ne filtres pas en fonction de la source du drag, alors ça n'a pas de raison d'être refusé "parce que ça vient d'ailleurs".
Ou alors c'est que tu as oublié le "registerForDraggedTypes" de ta tableview cible (si elle est de classe différente).
+
Chacha