Установить значок не-приложения Mac OS X пучка - PullRequest
5 голосов
/ 26 января 2011

Как установить значок для пакета, который не является приложением? Я попытался использовать CFBundleIconFile, но он не работает (хотя, если я просто изменю расширение пакета на .app, значок изменится на нужный). Есть ли другой ключ, или единственный способ установить значок для каталога? Если да, то есть ли какой-нибудь сценарий для выполнения этого из командной строки (сценарий запуска XCode)?

Ответы [ 2 ]

2 голосов
/ 21 июня 2011

Visual documentation of the process of copying and pasting an icon in the Finder

Если вам нужно сделать это из CLI ... Это немного сложнее ...

Во-первых, вам нужно добавить строку CFBundleIconFile к вашему

YourThing.bundle/Contents/Info.plist
* 1010 пакета * Здесь разработчик может указать собственный значок для пакета.Этот ключ содержит имя файла в папке ресурсов пакета, в котором находятся значки.TextEdit хранит свой значок в файле, называемом файлом Edit.icns, но нет никаких правил относительно того, каким должно быть имя файла.

При этом вам нужен либо файл ICNS, либо вы можете следуйте этим инструкциям из этой утилиты (которая включает в себя ее исходный код) , которая генерирует ICNS из файлов изображений через командную строку ..

$ ./makeicns 

Использование: makeicns[k1 = v1] [k2 = v2] ...

Ключи и значения включают в себя: 512: имя входного изображения для 512x512 варианта значка 256: имя входного изображения для 256x256 варианта значка 128: имявходное изображение для 128x128 варианта значка 32: имя входного изображения для 32x32 варианта значка 16: имя входного изображения для 16x16 варианта значка в: имя входного изображения для всех вариантов, не имеющих явного имени out: имя выходного файла,по умолчанию используется первое непустое имя ввода, но с расширением icns

Примеры:

  makeicns -512 image.png -32 image.png

Создает image.icns только с 512x512 и 32x32 вариантом.

  makeicns -in myfile.jpg -32 otherfile.png -out outfile.icns

Создает outfile.icns с размерами 512, 256, 128 и 16, содержащими данные из myfile.jpg, и с размером 32, содержащими данные из otherfile.png.

0 голосов
/ 19 ноября 2013

Ответ на аналогичный (дублирующий) вопрос :

[[NSWorkspace sharedWorkspace]
  setIcon:(NSImage *)image
  forFile:(NSString *)bundlePath
  options:0];
...