在OSX上显示创建者代码的图标

时间:2011-08-06 10:46:46

标签: cocoa macos osx-snow-leopard osx-lion hfs

如何根据文件创建者代码/类型代码显示自定义图标。例如,我有一个应用程序打开带有创建者代码'TSTx'的文件,我如何设置该创建者代码的图标?

我猜这是像Cyber​​duck这样的应用程序在下载文件时显示进度图标而不改变文件扩展名,这就是我试图复制的行为。

谢谢, Ĵ

1 个答案:

答案 0 :(得分:3)

您不应该依赖创建者和类型代码。并非所有文件都分配了它们。事实上,即使所有应用都没有独特的创作者代码,因此保证会中断。

如果文件系统中存在文件并且具有正确的路径扩展名,-[NSWorkspace iconForFile:]应该可以解决问题。 (我认为这也适用于自定义图标。)如果文件系统中不存在该文件(例如,因为它存储在数据库中),-[NSWorkspace iconForFileType:]是可行的方法。您可以为其提供路径扩展,或者,如果您坚持,则提供HFS类型代码(您必须将其包装在带有the NSFileTypeForHFSTypeCode function的字符串中)。

要设置Finder使用的自定义图标,您不需要类型和创建者代码。使用-[NSWorkspace setIcon:forFile:options:]