Если у меня есть полный путь к пакету приложения или NSBundle
экземпляру этого приложения, как я могу получить NSImage
представление значка этого приложения?
В частности, я хотел бы получить наилучшую доступную версию значка для определенного набора размеров. Например, если доступные версии значка приложения включают размеры 32 x 32, 64 x 64 и 128 x 128 точек, если я запрошу одну для 96 x 96 точек, я получу версию 128 x 128.
Это должно работать как на дисплеях с сетчаткой, так и на дисплеях без сетчатки, поэтому результирующий NSImage
должен будет включать в себя представления значка как с сетчаткой, так и без сетчатки.
Я нашел метод iconForFile:
для NSWorkspace
, но, к сожалению, он возвращает только значок размером 32x32 пикселя, так что это бесполезно для моих целей.
Я также мог бы прочитать ключи CFBundleIconFile
и CFBundleIconName
пакета из его информационного словаря, а затем извлечь правильное изображение из его файла icns или каталога активов, но это кажется большой работой. Я не уверен, с чего начать получение изображений из любого из этих типов файлов. Я надеюсь, что есть более простой способ!