Drag in finder, drop in tableview

12:49 modifié dans API AppKit #1
Hello à  tous,

Apparemment, le drag & drop c'est pas mon truc non plus  :o
J'ai réussi à  implémenter du drag & drop ds une tableview (changer la place des objets) et encore que c'est très simple.. pour moi :p
Maintenant je voudrais pouvoir glisser déposer un ou plusieurs fichiers depuis le finder vers ma tableView.
Et je ne vois pas du tout comment procéder

Réponses

  • elfelf Membre
    12:49 modifié #2
    Il suffit de gérer le drop et le type de fichier droppé par le finder, je crois
  • 12:49 modifié #3
    Tu dois déjà  enregistrer ta vue pour NSFilenamesPboardType depuis registerForDraggedTypes:

    Ensuite tu dois renseigner
    - (BOOL)tableView:(NSTableView*)tv acceptDrop:(id <NSDraggingInfo>)info row:(int)row dropOperation:(NSTableViewDropOperation)op
    {
    renvoit oui ou non... suivant les données
    }

    et
    - (NSDragOperation)tableView:(NSTableView*)tv validateDrop:(id <NSDraggingInfo>)info proposedRow:(int)row
    proposedDropOperation:(NSTableViewDropOperation)op
    {
    Si c'est un NSDragOperationCopy,NSDragOperationMove ou autre...
    }

    dans les deux cas utilise NSArray *files=[[info draggingPasteboard] propertyListForType:NSFilenamesPboardType]; pour obtenir les fichiers...
  • novembre 2005 modifié #4
    Hello,

    Voilà , depuis que tu m'as pistonné, j'ai cherché et cherché .... mais je ss perdu juste au moment où la copie doit s'effectué. Ma table accepte bien les drag depuis le finder.
    Voici ce que je voudrais :
    - Définir les extensions de fichiers acceptées en drag&drop
    - Pouvoir dropper seulement entre les lignes du tableau.

    Merci bcp !

    EDIT : J'ai réussi  :o Mais maintenant je cherche carrément à  n'avoir qu'un "+" en dessous du pointeur de la souris. C'est à  dire, ne pas avoir à  choisir la destination du drop ds la table vu que j'utilise un "addObject:(id)object" et non un "insertObject:(id)object atIndex:(int)rowIndex"
    Bon laissons parler les images :
    Je ne veux pas d'encadrement d'un row lors d'un drop : http://www.eagle-of-liberty.com/conservatoir/foutoir_img/rowCadre.png
    Je ne veux pas avoir à  droper entre les lignes : http://www.eagle-of-liberty.com/conservatoir/foutoir_img/rowMiddle.png
    Je veux une technique de drop libre sur la table!
    Est-ce possible ?
    Merci ;)
  • novembre 2005 modifié #5
    Tu peux utiliser NSCursor pour l'apparence du curseur (+)
Connectez-vous ou Inscrivez-vous pour répondre.