NSTableView, gérer 2 type de drop

15:00 modifié dans API AppKit #1
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

Réponses

  • ChachaChacha Membre
    15:00 modifié #2
    Je ne sais pas comment tu as tourné ton problème, c'est bizarre.
    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
  • 15:00 modifié #3
    j'ai un BOOL pour tableView:(NSTableView *)tv writeRows:(NSArray*)rows toPasteboard:(NSPasteboard*)pboard

    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  :o
  • ChachaChacha Membre
    15:00 modifié #4
    dans 1125340002:

    Maintenant je voudrais juste que ma seconde tableView accepte un dropOn de la part de la tableView des musiques  :o

    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
Connectez-vous ou Inscrivez-vous pour répondre.