【问题标题】:How can I turn off Finder's icon preview for my app's document type?如何为我的应用程序的文档类型关闭 Finder 的图标预览?
【发布时间】: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


    【解决方案1】:

    经过进一步的实验,到目前为止我能找到的最佳解决方案是将“符合”字段从 public.utf8-plain-text 更改为简单的 public.textpublic.text UTI 适用于任何类型的文本——任何编码,带或不带标记等。任何更具体的符合 UTI 似乎都会导致 Finder(或无论它是谁)替换我的图标。但是public.text 的图标并没有被替换,大概是因为这样做的人感觉他们没有足够的信息来继续,因为public.text 太笼统了。

    这确实不是最佳选择,因为这意味着用于我的文件的编码未在我的 UTI 导出信息中公开说明,这使得其他应用不太可能以文本形式打开我的应用文件。如果其他人有更好的解决方案,我很乐意投票支持它而不是这个答案。但是为了后代,我提出了这个答案,因为它可能会帮助其他人在类似的船上。

    【讨论】:

    • 我刚刚在 Apple 上记录了一个关于此的错误。
    猜你喜欢
    • 2023-01-25
    • 1970-01-01
    • 1970-01-01
    • 2010-10-09
    • 2011-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-09
    相关资源
    最近更新 更多