2009-09-17 7 views
9

J'écris une application Cocoa qui affiche le contenu d'un fichier d'archive dans un NSOutlineView. Je fournis une icône personnalisée pour un NSBrowserCell dans la colonne de contour, et cela fonctionne très bien, mais j'ai rencontré un petit hic - en utilisant [NSImage imageNamed:@"NSFolder"] renvoie l'image correcte (une icône de dossier générique) sur 10.6, mais sur 10.5 il renvoie zéro, donc toutes les icônes de dossier disparaissent. (Je ne trouve aucune documentation sur le nom de l'icône NSFolder pour voir quand il a été introduit - je l'ai fait fonctionner par essais et erreurs.)Comment obtenir NSImage d'icône de dossier générique sur OS X 10.5 et 10.6

Y at-il une méthode non-obsolète pour obtenir une icône de dossier générique qui fonctionne sur à la fois 10,5 et 10,6?

Répondre

17

[[NSWorkspace sharedWorkspace] iconForFileType:NSFileTypeForHFSTypeCode(kGenericFolderIcon)]

(je pense)

+3

(FWIW, NSImageNameFolder (que je suppose est @ "NSFolder") a été introduit en 10.6.) – Wevah

+2

Merci! J'apprends quelque chose de nouveau sur Cocoa au moins une fois par semaine ... Je n'aurais pas pensé à chercher dans NSImage.h des constantes comme 'NSImageNameFolder', et je n'ai jamais entendu parler de' kGenericFolderIcon', qui est l'une des nombreuses constantes définies dans IconsCore .h, partie de LaunchServices.framework. C'est vraiment bon à savoir. –

+0

Et comment Google ne m'a-t-il pas donné ça quand j'ai demandé "Cocoa generic folder icon" ?! http://cocoadev.com/index.pl?GetGenericFolderIcon J'aurais dû prendre le code sur RedSweaterBlog, mais il était en cours d'exécution dans la barre latérale et je l'ai manqué ... –

Questions connexes