Wie kann ich eine NSImage Darstellung des Symbols für meine Anwendung laden?
Frage
Ich habe eine benutzerdefinierte Symboldatei (MyApp.icns) für meine Cocoa App einrichten. Wie kann ich auf eine NSImage
Darstellung des Symbols aus meiner Anwendung?
So etwas wie die folgenden wäre perfekt:
NSImage * iconImage = [MyApplication defaultIconAsImage];
Aber ich bin sicher, es ist nicht , die einfach:)
Ich kann natürlich, einen Pfad zu der Symboldatei erhalten wie folgt:
NSString * iconPath = [[NSBundle mainBundle]
pathForResource:@"MyApp" ofType:@"icns"];
Aber es scheint mir, dass es irgendeine Art von Standard Weg, um Zugang zu sein die Icon-Datei für die Anwendung, anders als es beim Namen nennen, da der Name ändern könnte.
Was ist der richtige Weg, dies zu tun?
Lösung
Andere Tipps
Nur der Vollständigkeit halber -. Dies ist, wie Sie das Symbol für jede Anwendung oder Datei auf Ihrem System erhalten
NSImage *iconImage = [[NSWorkspace sharedWorkspace] iconForFile:@"path"];
Pass auf dem Weg zum Anwendungspaket für ein Anwendungssymbol oder den Pfad zu einer Datei für das Symbol mit der Datei verknüpft.
Beachten Sie, dass -[NSApplication applicationIconImage]
nicht das richtige Symbol zurückkehrt, wenn ein benutzerdefiniertes Symbol auf die App eingefügt wird. Dann müssen Sie tun:
NSString* appPath = [[NSBundle mainBundle] bundlePath];
NSImage* appIcon = [[NSWorkspace sharedWorkspace] iconForFile:appPath];
(Referenz des Dock-Symbol Code, den ich für Chromium schrieb: http: //src.chromium.org/svn/trunk/src/chrome/browser/ui/cocoa/dock_icon.mm )