Как я могу загрузить представление NSImage значка для моего приложения?
У меня есть пользовательский файл значков (MyApp.icns), настроенный для моего приложения Cocoa. Как я могу получить доступ к представлению NSImage
значка из моего приложения?
Что-то вроде следующего было бы идеально:
NSImage * iconImage = [MyApplication defaultIconAsImage];
Но я уверен, что это не так просто:)
Я могу, конечно, получить путь к файлу значка следующим образом:
NSString * iconPath = [[NSBundle mainBundle]
pathForResource:@"MyApp" ofType:@"icns"];
Но мне кажется, что должен быть какой-то стандартный способ доступа к файлу значка для приложения, кроме вызова его по имени, поскольку имя может измениться.
Каков правильный способ сделать это?
Ответы
Ответ 2
Просто для полноты. Вот как вы получаете значок для любого приложения или файла в вашей системе.
NSImage *iconImage = [[NSWorkspace sharedWorkspace] iconForFile:@"path"];
Передайте путь к набору приложений для значка приложения или путь к файлу для значка, связанного с файлом.
Ответ 3
Обратите внимание, что -[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)