Как загрузить представление значка NSImage для моего приложения?

StackOverflow https://stackoverflow.com/questions/1359060

  •  20-09-2019
  •  | 
  •  

Вопрос

У меня есть собственный файл значков (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)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top