Mac OSX捆绑包的图标

Per*_*nce 13 macos icons finder bundle

我编译了一个名为MyBundle.bundle的Mac OSX软件包,它用作另一个应用程序的插件.我希望捆绑包有一个独特的图标,所以我设置Info.plist文件说:

<key>CFBundleIconFile</key>
<string>MyIcon.icns</string>
Run Code Online (Sandbox Code Playgroud)

并将文件MyIcon.icns放在bundle的MyBundle.bundle/Contents/Resources文件夹中.

这不起作用,查找程序显示捆绑包的通用图标并忽略指定的MyIcon.icns文件.如果我将软件包的扩展名从.bundle更改为.app,则图标会立即显示 - 所以我知道Info.plist是正确的.

我找到了一个可以模拟用户在包上复制和粘贴图标的工作:

我将图标作为"icns"类型的资源和id -16455添加到bundle的.rsrc文件中.

我打电话

/Developer/Tools/SetFile -a BC MyBundle.bundle
Run Code Online (Sandbox Code Playgroud)

这有效,但真的很蹩脚.从Mac OS 10.8开始,SetFile需要永远执行.

我的问题:是否有强迫Finder在没有这些黑客的情况下显示捆绑的图标?

BTW:关于同一主题有一个问题:设置非app mac os x bundle的图标 ; 但唯一的答案是指示如何创建一个图标,并没有帮助解决问题.

Fru*_*eek 5

您可以使用NSWorkspace

[[NSWorkspace sharedWorkspace] setIcon:(NSImage *)image forFile:(NSString *)fullPath options:(NSWorkspaceIconCreationOptions)options]

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSWorkspace_Class/Reference/Reference.html


小智 -5

简单方法:打开图片文件选择所有副本,单击该项目,apple-i 获取信息,单击弹出窗口中的图标,然后单击 apple-v。

这就是最简单的事情。

  • 你读过这个问题吗?它说:我找到了一种解决方法,可以模拟用户在捆绑包上复制和粘贴图标,问题是:是否有办法强制 Finder 显示捆绑包的图标**而不**这样的黑客行为?我需要一种方法来自动为数百个包设置图标。 (2认同)