如何根据文件创建者代码/类型代码显示自定义图标。例如,我有一个使用创建者代码“TSTx”打开文件的应用程序,我将如何设置该创建者代码的图标?
我猜这就是 Cyberduck 等应用程序在下载文件而不更改文件扩展名时显示进度图标的方式,这就是我试图复制的行为。
谢谢,J
如何根据文件创建者代码/类型代码显示自定义图标。例如,我有一个使用创建者代码“TSTx”打开文件的应用程序,我将如何设置该创建者代码的图标?
我猜这就是 Cyberduck 等应用程序在下载文件而不更改文件扩展名时显示进度图标的方式,这就是我试图复制的行为。
谢谢,J
您不应该为此依赖创建者和类型代码。并非所有文件都分配了它们。事实上,并非所有应用程序都具有唯一的创建者代码,因此肯定会被破坏。
如果它们的文件确实存在于文件系统中并且具有正确的路径扩展名,-[NSWorkspace iconForFile:]
那么应该可以解决问题。(我认为这也适用于自定义图标。)如果文件系统中不存在该文件(例如,因为它存储在数据库中),-[NSWorkspace iconForFileType:]
那么就是要走的路。您可以为其提供路径扩展名,或者,如果您坚持,可以提供 HFS 类型代码(您必须使用函数将其包装在字符串中NSFileTypeForHFSTypeCode
)。
要设置 Finder 使用的自定义图标,您不需要类型和创建者代码。使用-[NSWorkspace setIcon:forFile:options:]
.