Comment puis-je charger une représentation NSImage de l'icône pour mon application?

StackOverflow https://stackoverflow.com/questions/1359060

  •  20-09-2019
  •  | 
  •  

Question

J'ai un fichier icône personnalisée (de MyApp.icns) mis en place pour mon application Cocoa. Comment puis-je accéder à une représentation NSImage de l'icône à l'intérieur de ma demande?

Quelque chose comme ce qui suit serait parfait:

NSImage * iconImage = [MyApplication defaultIconAsImage];

Mais je suis sûr que ce n'est pas que facile:)

Je peux, bien sûr, obtenir un chemin vers le fichier d'icône comme suit:

NSString * iconPath = [[NSBundle mainBundle]
                       pathForResource:@"MyApp" ofType:@"icns"];

Mais il me semble qu'il devrait y avoir une sorte de manière standard d'accès l'icône fichier pour l'application, autre que d'appeler par son nom, puisque le nom pourrait changer.

Quelle est la bonne façon de le faire?

Était-ce utile?

Autres conseils

Juste pour être complet -. Voici comment vous obtenez l'icône pour toute application ou d'un fichier sur votre système

NSImage *iconImage = [[NSWorkspace sharedWorkspace] iconForFile:@"path"];

passer dans le chemin du faisceau de demande d'une icône d'application ou le chemin d'accès à un fichier pour l'icône associée au fichier.

Notez que -[NSApplication applicationIconImage] ne retourne pas l'icône correcte quand une icône personnalisée est collée sur l'application. Ensuite, vous devez faire:

NSString* appPath = [[NSBundle mainBundle] bundlePath];
NSImage* appIcon = [[NSWorkspace sharedWorkspace] iconForFile:appPath];

(référence le code icône du dock j'ai écrit pour Chrome: http: //src.chromium.org/svn/trunk/src/chrome/browser/ui/cocoa/dock_icon.mm )

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top