Como posso carregar uma representação nsimage do ícone para o meu aplicativo?
Pergunta
Eu tenho um arquivo de ícone personalizado (myapp.icns) configurado para o meu aplicativo de cacau. Como posso acessar um NSImage
Representação do ícone de dentro do meu aplicativo?
Algo como o seguinte seria perfeito:
NSImage * iconImage = [MyApplication defaultIconAsImage];
Mas tenho certeza que não é este fácil :)
É claro que posso obter um caminho para o arquivo de ícone da seguinte maneira:
NSString * iconPath = [[NSBundle mainBundle]
pathForResource:@"MyApp" ofType:@"icns"];
Mas parece -me que deve haver algum tipo de maneira padrão de acessar a O arquivo de ícone para o aplicativo, além de chamá -lo pelo nome, pois o nome pode mudar.
Qual é a maneira correta de fazer isso?
Solução
Outras dicas
Apenas para completude - é assim que você obtém o ícone para qualquer aplicativo ou arquivo do seu sistema.
NSImage *iconImage = [[NSWorkspace sharedWorkspace] iconForFile:@"path"];
Passe o caminho para o pacote de aplicativos para um ícone de aplicativo ou o caminho para um arquivo para o ícone associado ao arquivo.
Observe que -[NSApplication applicationIconImage]
Não retorna o ícone correto quando um ícone personalizado é colado no aplicativo. Então você precisa fazer:
NSString* appPath = [[NSBundle mainBundle] bundlePath];
NSImage* appIcon = [[NSWorkspace sharedWorkspace] iconForFile:appPath];
(Reference o código do ícone do dock que escrevi para o Chromium: http://src.chromium.org/svn/trunk/src/chrome/browser/ui/cocoa/dock_icon.mm)