[Résolu] Permettre l'ouverture de fichiers.
Leeroy
Membre
Bonjour,
Dans la continuation de mon application j'aimerai que celles ci puisse ouvrir n'importe quelle type de fichiers. J'ai déjà la méthode pour que l'application puisse ouvrir une liste de fichier NSArray de NSURL, mais je n'arrive à trouver comment lancer l'application avec une liste de fichiers, sachant aussi que je n'utilise pas la structure de document et que l'application ne doit pas avoir d'extension associée.
J'espère avoir été clair.
Merci d'avance.
Dans la continuation de mon application j'aimerai que celles ci puisse ouvrir n'importe quelle type de fichiers. J'ai déjà la méthode pour que l'application puisse ouvrir une liste de fichier NSArray de NSURL, mais je n'arrive à trouver comment lancer l'application avec une liste de fichiers, sachant aussi que je n'utilise pas la structure de document et que l'application ne doit pas avoir d'extension associée.
J'espère avoir été clair.
Merci d'avance.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Qu'entends tu par "ouvrir une liste de fichiers" ?
Si c'est une liste en interne tu la stockes à la fermeture de ton appli et tu la recharges au démarrage puis tu charges les fichiers qui sont dedans.
Pour la gestion des fichiers la documentation est ici http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/LowLevelFileMgmt/Introduction.html#//apple_ref/doc/uid/10000055-SW1
- liste connue par le logiciel lors de son ouverture (userDefaults ou liste "en dur")?
- glissé-déposé d'une sélection multiple sur l'icone du logiciel ou sur une de ses fenêtres?
- appel du logiciel par un autre logiciel qui fournit la liste comme paramètre d'ouverture?
- autre?
Une fois que tu as la liste, l'ouverture de chaque fichier se fait dans une boucle et dépend du type de chacun: texte, xml, strings, plist ..... etc
Le conseil de laudema d'aller voir la doc du NSFileManager est pertinent.
Alors, je sélectionne des fichiers dans le finder puis je fais un glisser déposer sur mon application. Ou dis encore autrement comment sont passés les fichiers à une application à l'ouverture (par "glisser déposer" ou "ouvrir avec"), en C standard c'est dans les paramètres du main qu'on retrouve les fichiers, mais là ?
Au final c'est pas l'ouverture qui pose problème ni le traitement à faire sur chaque fichier mais bien obtenir cette liste. Je n'arrive malheureusement pas à trouver les bon mots clef pour une recherche.
Suis-je plus clair?
draggingEntered, prepareForDragOperation, performDragOperation, concludeDragOperation
et le delegate
- (BOOL)application:(NSApplication *)sender openFile:(NSString *)filename.
Et chercher des examples sur le drag and drop chez Apple.
ainsi ton appli ouvrira tous les sortes de fichiers (y compris un dossier)
Il faut ensuite que ton controller soit delegate de NSApplication.
tu implémentes dans ce controller la méthode:
- (void)application:(NSApplication *)sender openFiles:(NSArray *)filenames
et voilà
Merci pour le type, j'y avais rêver sans jamais l'oser :P
Pour définir le delegate, tu le fais sous IB entre le File's owner du nib principal de l'application et l'objet controleur. Pour la synchronisation, l'AppKit appelera la méthode delegate au moment opportun, donc tu ne t'en occupes pas.