Icône personnalisée sur un fichier

mac_manumac_manu Membre
12:39 modifié dans API AppKit #1
Bonjour,

J'ai créé une application avec un projet "cocoa Application" et je sauvegarde mes données via un archivage et NSCoder. Comment faire pour rendre le fichier ainsi créé plus personnel, avec l'icône de l'application par ex.  ::)

mac_manu

Réponses

  • cbrandtcbrandt Membre
    12:39 modifié #2
    dans xcode, double-clique sur ta target pour ouvrir lesinfos de celle-ci.
    ensuite dans l'onglet propriétés, remplis la zone "document types"...

    ps: je ne peux pas t'aider beaucoup plus, je ne m'en suis encore jamais servi....
  • mac_manumac_manu Membre
    12:39 modifié #3
    Merci, je vais déjà  essayer avec ça.
  • VeillardVeillard Membre
    12:39 modifié #4
    Salut !

    Tu crées ton icône avec Iconographer par exemple puis tu l'enregistres au format "icns". Tu importes ton icône dans ton projet et tu suis la procédure de cbrandt :
    Dans ton projet, tu cliques sur ton exécutable qui se trouve dans "target" et tu fais "Pomme-I" tu vas dans l'onglet "Properties" et tu renseignes les champs. Attention à  la rubrique "class" tu dois mettre le même nom de classe que ton NSDocument.

    Voilà 
  • mac_manumac_manu Membre
    12:39 modifié #5
    OK, Favouille, mais je n'ai pas de NSDocument puisque ce n'est pas une application document based!! Je sauvegarde via NSArchiver...
  • mpergandmpergand Membre
    12:39 modifié #6
    Ca marchera quand même  ;)
  • mac_manumac_manu Membre
    12:39 modifié #7
    Encore merci pour votre optimisme. Mais me concernant, ce n'est toujours pas très clair. Favouille me dit de mettre dans le champ class le même nom de classe que mon NSDocument(?!) Que dois-je mettre puisque je n'ai pas de "documents" mais une NSArchiver? Est-ce "NSApplication"? De plus, faut-il remplir les autres champs? (MIME type/OS type etc...) et si oui, par quoi?
    Désolé de vous embêter, mais je voudrais vraiment y arriver et je suis un novis dans Xcode et Cocoa. Alors merci pour votre précieuse aide!
  • mpergandmpergand Membre
    12:39 modifié #8
    Salut,

    Puisque tu n'as pas de NSDocument, pour le nom de la classe tu mets... rien  :)

    Il te suffit de définir une extension pour ton fichier archive, quant aux MIME/OS Type : laisse tomber  ;)
  • olofolof Membre
    12:39 modifié #9
    Je détère ce thread car j'ai quelques problèmes avec les types de documents...

    Soit une application NON-document based. Je créé des fichiers en passant par NSData writeToFile...

    Dans l'écran 'Edit target ...', je créé un type de document avec l'extension vp et une icône faite maison. Quand je sauve en précisant l'extension .vp, ça marche.

    Mais est-ce possible que mon fichier soit du type voulu sans qu'il ait une extension ? L'utilisateur sauve le fichier toto et ce dernier est du bon type ?!?!


    Merci
  • Eddy58Eddy58 Membre
    12:39 modifié #10
    Le préfixe est surtout là  à  des fins visuelles, et aussi pour le tri ou le filtrage. Après c'est à  toi de voir, s'il n'y a pas de préfixe, de vérifier si la structure de ton document correspond au format voulu. :)
  • aranaudaranaud Membre
    12:39 modifié #11
    Tu est sûr que le Finder s'y retrouve s'il n'y a pas d'extension.
    Genre, pour ouvrir le fichier, je doute qui sache quel application il faut utiliser pour l'ouvrir.
    Si la gène n'est que visuel, masque l'extension.
  • olofolof Membre
    12:39 modifié #12
    Je me suis peut-être un peu mal exprimé.

    Quand on sauve un document Word, par exemple, même si on donne pas d'extension le type du document est bien Document Word (ou un truc du genre). Dans mon appli, si je ne spécifie pas d'extension, le type du document est 'Document'. Comment faire ? Du genre, en sauvegardant, dire quel doit être le type du fichier...
  • aranaudaranaud Membre
    12:39 modifié #13
    Il me semble que c'est l'extension qui donne le type de document.
    Si tu as utilisé NSSavePanel , il faut aussi ceci pour l'extension en automatique
    <br />NSSavePanel *sp [NSSavePanel savePanel];<br />[sp setRequiredFileType:@&quot;extension&quot;];<br />
    
  • olofolof Membre
    12:39 modifié #14
    dans 1136571149:

    Il me semble que c'est l'extension qui donne le type de document.
    Si tu as utilisé NSSavePanel , il faut aussi ceci pour l'extension en automatique
    <br />NSSavePanel *sp [NSSavePanel savePanel];<br />[sp setRequiredFileType:@&quot;extension&quot;];<br />
    



    Ok, j'ai ajouté ton code pour que l'extension s'ajoute automatiquement.

    Mais il me semble quand même que qu'il doit être possible de forcer le type d'un document qu'on sauve sans spécifier d'extension. Word le fait. Et sauf erreur, une application NSDocument based le fait aussi !!!
  • Eddy58Eddy58 Membre
    janvier 2006 modifié #15
    dans 1136569169:

    Tu est sûr que le Finder s'y retrouve s'il n'y a pas d'extension.
    Genre, pour ouvrir le fichier, je doute qui sache quel application il faut utiliser pour l'ouvrir.

    Je ne parlais pas du Finder, mais d'une application ouvrant le document, j'avais compris la demande ainsi...;)
  • aranaudaranaud Membre
    12:39 modifié #16
    dans 1136571655:

    Mais il me semble quand même que qu'il doit être possible de forcer le type d'un document qu'on sauve sans spécifier d'extension. Word le fait. Et sauf erreur, une application NSDocument based le fait aussi !!!

    Peut-être avec la classe NSFileManager en changant les attributes du fichiers.
    <br />//&nbsp; création des information finder<br />NSFileManager *myFileD = [ NSFileManager defaultManager];<br /><br />NSDictionary *dicD = [NSDictionary dictionaryWithObjectsAndKeys:[NSDate date], NSFileModificationDate, @&quot;owner&quot;, @&quot;NSFileOwnerAccountName&quot;, @&quot;group&quot;, @&quot;NSFileGroupOwnerAccountName&quot;, nil ,@&quot;NSFilePosixPermissions&quot;, [NSNumber numberWithBool:YES],@&quot;NSFileExtensionHidden&quot;, nil];<br /><br />[myFileD createFileAtPath:[dossierParent stringByAppendingPathComponent:nomPartieD] contents:[NSData data] attributes:dicD];<br />
    
  • mpergandmpergand Membre
    12:39 modifié #17
    Tu peux définir un type code pour ton fichier:
    http://developer.apple.com/documentation/Cocoa/Conceptual/Documents/Tasks/SavingHFSTypeCodes.html

    et l'occasion est trop belle pour moi de faire rejaillir à  la lumière  Creator & Type injustement tombé dans l'oubli  :)

    Sans rire, cette appli te permettra de vérifier que pour les fichiers n'ayant pas d'extension (comme word), c'est le type code qui définit le type du fichier.

  • olofolof Membre
    12:39 modifié #18
    Ok, ça avance !  :kicking:

    J'ai pas tout pigé avec le code du type (ça se déclare quelque part ???)...

    Par contre, ce que j'ai fait, c'est que l'extension est ajouté au nom du fichier avant la sauvegarde et puis elle est cachée.



    Merci !
Connectez-vous ou Inscrivez-vous pour répondre.