1

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

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

谢谢,J

4

1 回答 1

3

您不应该为此依赖创建者和类型代码。并非所有文件都分配了它们。事实上,并非所有应用程序都具有唯一的创建者代码,因此肯定会被破坏。

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

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

于 2011-08-06T11:56:11.557 回答