Come posso caricare una rappresentazione NSImage dell'icona per la mia applicazione?
Domanda
Ho un file icona personalizzata (MyApp.icns) impostati per il mio cacao App. Come posso accedere una rappresentazione NSImage
dell'icona da dentro la mia domanda?
qualcosa come il seguente sarebbe perfetto:
NSImage * iconImage = [MyApplication defaultIconAsImage];
Ma sono sicuro che non è che facile:)
posso, naturalmente, ottenere un percorso del file icona come segue:
NSString * iconPath = [[NSBundle mainBundle]
pathForResource:@"MyApp" ofType:@"icns"];
Ma mi sembra che ci dovrebbe essere una sorta di metodo standard per l'accesso il file icona dell'applicazione, oltre chiamandolo per nome, dal momento che il nome potrebbe cambiare.
Qual è il modo corretto di fare questo?
Soluzione
Altri suggerimenti
Solo per completezza -. Questo è come si ottiene l'icona per qualsiasi applicazione o file nel sistema
NSImage *iconImage = [[NSWorkspace sharedWorkspace] iconForFile:@"path"];
Passate il percorso del pacchetto di applicazioni per l'icona di un'applicazione o il percorso di un file per l'icona associata al file.
Si noti che -[NSApplication applicationIconImage]
non restituisce l'icona corretta quando un'icona personalizzata viene incollato sul app. Allora avete bisogno di fare:
NSString* appPath = [[NSBundle mainBundle] bundlePath];
NSImage* appIcon = [[NSWorkspace sharedWorkspace] iconForFile:appPath];
(riferimento al codice icona del dock che ho scritto per Chromium: http: //src.chromium.org/svn/trunk/src/chrome/browser/ui/cocoa/dock_icon.mm )