【发布时间】:2017-02-02 03:39:17
【问题描述】:
我已经成功地完成了正确的操作,并为我的 OS X 应用程序的文档类型设置了自定义 UTI,并带有自定义文件扩展名等。我也为我的文件类型设置了一个图标,这也有效。我知道这一点,因为当我从我的应用程序中保存一个新文件时,我可以看到它以正确的图标出现在 Finder 中。但是 - 大约一秒钟后,Finder 将我的图标替换为它的一个通用“预览”图标,在图标内显示我的文件的文本内容,在预览图标的底部带有我的文件扩展名,大写,像这样:
我认为这是因为我将我的自定义 UTI 声明为具有 MIME 类型 text/plain 并符合 public.utf8-plain-text。我确实想这样做,因为它们实际上是文本文件,并且我希望允许用户这样对待它们,其他应用程序也可以这样识别它们,等等。但是鉴于此,Finder(也许通过一些 QuickLook 生成器或其他东西)因此说“啊哈,这是一个文本文件,我知道如何为文本文件制作自定义预览图标!”并替换我的自定义图标。不用说,这不是我想要的。我怎样才能防止这种情况发生?我在我的项目中使用了 Objective-C,但我不认为这是一个特定于语言的问题;这一切都与我的应用 plist 中的 UTI 声明有关。
说到这里,下面是我在 Xcode 中配置 UTI 方式的截图:
这是 Xcode 中 UTI 导出的屏幕截图:
那里的图标预览显示为问号很好;那是因为图标图像作为.iconset 文件夹包含在我的项目中,该文件夹在构建时由Xcode 转换为必需的.icns 文件,而Xcode 不够聪明,无法显示正确的预览。但正如我上面所说,正确的图标确实会在 Finder 中显示一秒钟,然后才会被预览图标替换,因此图标 .icns 文件的设置以及 .icns 与 UTI 的绑定很明显在职的。同样,如果我在 Finder 中对我的文件执行“获取信息”,顺便说一下,它会在信息窗口的左上角显示正确的图标。正确的图标也显示在我的应用程序窗口的标题栏中。只是在 Finder 的显示中使用了错误的图标。有什么想法吗?
【问题讨论】:
标签: xcode macos icons finder uti