Как загрузить представление значка NSImage для моего приложения?
Вопрос
У меня есть собственный файл значков (MyApp.icns), настроенный для моего приложения Cocoa.Как я могу получить доступ к NSImage
представление значка из моего приложения?
Идеально было бы что-то вроде следующего:
NSImage * iconImage = [MyApplication defaultIconAsImage];
Но я уверен, что это не так что легкий :)
Я могу, конечно, получить путь к файлу значка следующим образом:
NSString * iconPath = [[NSBundle mainBundle]
pathForResource:@"MyApp" ofType:@"icns"];
Но мне кажется, что должен быть какой-то стандартный способ доступа тот файл значка для приложения, кроме вызова его по имени, поскольку имя может измениться.
Как правильно это сделать?
Решение
Другие советы
Для полноты картины: именно так вы получаете значок любого приложения или файла в вашей системе.
NSImage *iconImage = [[NSWorkspace sharedWorkspace] iconForFile:@"path"];
Передайте путь к пакету приложения для значка приложения или путь к файлу для значка, связанного с файлом.
Обратите внимание, что -[NSApplication applicationIconImage]
не возвращает правильный значок, когда в приложение вставляется собственный значок.Тогда вам нужно сделать:
NSString* appPath = [[NSBundle mainBundle] bundlePath];
NSImage* appIcon = [[NSWorkspace sharedWorkspace] iconForFile:appPath];
(Ссылка на код значка док-станции, который я написал для Chromium: http://src.chromium.org/svn/trunk/src/chrome/browser/ui/cocoa/dock_icon.mm)