Drag an drop de fichiers
Obi
Membre
J'ai beau lire et relire la doc et les exemples, je vais devenir fou :crackboom:-
J'ai une vue qui représente un ou plusieurs fichiers qui existe sur le disque. De là , je veux que l'utilisateur puisse "prendre" ces fichiers depuis la vue et le drag&drop sur le bureau ou toute autre appli qui les accepterait, exactement comme si c'était les fichiers du Finder. On va dire que c'est une liste d'images.
Dans le mouseDown de la vue, je commence le drag avec dragImage avec une array des url des fichiers dans le pastboard. Résultat :
- en déposant dans TextEdit, par ex, il ajoute les images nickel
- mais en déposant dans un dossier du Finder, il copie les fichiers au lieu de les déplacer.
Alors j'implemente draggingSourceOperationMaskForLocal et je retourne NSDragOperationMove si ce n'est pas en local. Résultat :
- le Finder déplace bien les fichiers comme je veux
- mais il ne fait rien quand je drop sur la corbeille
- et TextEdit ne réagit plus du tout
J'ai essayé dragPromisedFilesOfTypes comme indiqué dans la doc mais ça ne convient pas car
- il faut spécifier le type du fichier (moi je peux en avoir plusieurs)
- on ne peux visiblement pas changer l'image du drag (c'est laid)
- il faut fournir les fichiers promis (je veux que les applis se débrouillent seules avec les urls)
- je ne veux pas être obligé de me limiter à des drag&drop de fichiers
J'espère que ce n'est pas trop confus, parce que pour moi ça l'est vraiment ;D
J'ai une vue qui représente un ou plusieurs fichiers qui existe sur le disque. De là , je veux que l'utilisateur puisse "prendre" ces fichiers depuis la vue et le drag&drop sur le bureau ou toute autre appli qui les accepterait, exactement comme si c'était les fichiers du Finder. On va dire que c'est une liste d'images.
Dans le mouseDown de la vue, je commence le drag avec dragImage avec une array des url des fichiers dans le pastboard. Résultat :
- en déposant dans TextEdit, par ex, il ajoute les images nickel
- mais en déposant dans un dossier du Finder, il copie les fichiers au lieu de les déplacer.
Alors j'implemente draggingSourceOperationMaskForLocal et je retourne NSDragOperationMove si ce n'est pas en local. Résultat :
- le Finder déplace bien les fichiers comme je veux
- mais il ne fait rien quand je drop sur la corbeille
- et TextEdit ne réagit plus du tout
J'ai essayé dragPromisedFilesOfTypes comme indiqué dans la doc mais ça ne convient pas car
- il faut spécifier le type du fichier (moi je peux en avoir plusieurs)
- on ne peux visiblement pas changer l'image du drag (c'est laid)
- il faut fournir les fichiers promis (je veux que les applis se débrouillent seules avec les urls)
- je ne veux pas être obligé de me limiter à des drag&drop de fichiers
J'espère que ce n'est pas trop confus, parce que pour moi ça l'est vraiment ;D
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses