NSIndexSet - Drag&Drop entre deux NSTableView
Rocou
Membre
Bonjour,
J'ai réalisé un drag@drop entre deux NSTableView qui fonctionne très bien.
Je récupère des éléments sur une ligne de la NSTableView de départ et je génère une ligne dans la NSTableView de destination.
Je voudrais pouvoir réaliser un drag@drop de plusieurs lignes.
Dans le code de "l'acceptDrop", j'ai la ligne suivante:
Elle me permet de récupérer l'index de la ligne que je "drag"
Or si je veux faire un drag de plusieurs lignes, il faut que je récupère les index de chacune de ces lignes et pas seulement le "firstIndex".
Je ne vois pas comment faire, il n'existe apparemment pas de méthode NSIndexSet permettant de récupérer d'autre index que le premier ou le dernier (lastIndex).
J'ai réalisé un drag@drop entre deux NSTableView qui fonctionne très bien.
Je récupère des éléments sur une ligne de la NSTableView de départ et je génère une ligne dans la NSTableView de destination.
Je voudrais pouvoir réaliser un drag@drop de plusieurs lignes.
Dans le code de "l'acceptDrop", j'ai la ligne suivante:
int dragRow = [rowIndexes firstIndex];
Elle me permet de récupérer l'index de la ligne que je "drag"
Or si je veux faire un drag de plusieurs lignes, il faut que je récupère les index de chacune de ces lignes et pas seulement le "firstIndex".
Je ne vois pas comment faire, il n'existe apparemment pas de méthode NSIndexSet permettant de récupérer d'autre index que le premier ou le dernier (lastIndex).
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Bon, je pense avoir trouvé, il faut utiliser:
(avec NSIndexSet* rowIndexes)
[rowIndexes count] pour trouver le nombre d'index
puis boucler sur ce nombre et dans la boucle passer d'in dex à l'autre à l'aide de:
int dragRow = [rowIndexes indexGreaterThanIndex:[rowIndexes firstIndex]];
EDIT: non, ça ne permet que de trouver le deuxième index mais pas les suivants. Zut!
EDIT2: ouf ça y est! :P
Dans la boucle il faut réinitialiser le NSIndexSet avec tous les index moins le premier et ainsi de suite:
Essai :
Ha, merci, je ne comprenais rien à la méthode getIndexes::bufferSize inIndexRange: