Mih*_*hah 6 macos cocoa objective-c macos-catalina
我有一个Mac应用程序,可以打开Office文件(.doc,.xls等),并且需要显示这些受支持文件的自定义图标。我曾经通过在其中添加受支持的UTI类型CFBundleDocumentTypes并分配我的自定义icns图标来实现。还将我的应用程序设置为默认应用程序,它将打开这些文件类型。
现在,即使在与我的应用程序同时存在Microsoft应用程序的情况下,该方法也可以完美地工作到macOS Catalina beta版。从macOS Catalina beta开始,我看到了我的应用程序图标代替了所有文件图标。
我尝试清除图标缓存,甚至重新启动Finder,但无济于事。后来我甚至尝试通过在UTExportedTypeDeclarations和下添加UTI类型UTImportedTypeDeclarations。
这是Catalina Beta的错误吗?或我可以做的任何事情来使它工作。
我的清单UTExportedTypeDeclarations看起来像这样。UTImportedTypeDeclarations并CFBundleDocumentTypes具有相似的值。
<key>UTExportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>org.openxmlformats.spreadsheetml.sheet</string>
<string>org.openxmlformats.openxml</string>
<string>public.composite-content</string>
</array>
<key>UTTypeDescription</key>
<string>Excel Open XML spreadsheet</string>
<key>UTTypeIconFile</key>
<string>custom.icns</string>
<key>UTTypeIdentifier</key>
<string>com.microsoft.excel.openxmlformats.spreadsheetml.sheet</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>com.apple.ostype</key>
<string>XLSX</string>
<key>public.filename-extension</key>
<array>
<string>xlsx</string>
</array>
</dict>
</dict>
</array>
Run Code Online (Sandbox Code Playgroud)
看起来 macOS 10.15 改变了类型对应图标的解析方式。
我找到了一种在 Catalina 上为我的应用程序获取正确文档图标的方法:以前我只为字典中的键
定义了一个图标。但自 Catalina 以来,系统使用数组来查找导出的UTI,然后使用该 UTI 的图标(通过 定义)。 CFBundleTypeIconFileCFBundleDocumentTypesLSItemContentTypesUTTypeIconFile
如果LSItemContentTypes数组包含系统尚不知道的类型(=新引入的自定义类型),则还必须通过在UTExportedTypeDeclarations.
这适用于我的情况,因为我使用带有自己的 UTI 的自定义文件格式。
对于您所描述的使用现有尿路感染的情况,我不确定是否仍然可以覆盖您不“拥有”的尿路感染的图标。我认为为第 3 方类型定义自定义图标的正确方法是在导入类型数组 ( UTImportedTypeDeclarations) 中定义字典。在这种情况下,只要没有其他应用程序通过导出 UTI 来声明其所有权,系统就应该选择您的自定义图标。我认为,如果有 2 个或更多应用程序声明其所有权(尚未尝试过),则设置为某种类型的默认应用程序的应用程序图标会获胜。
我遇到的另一个问题是,分配给的图标文件UTTypeIconFile不能来自资产目录(这适用于CFBundleTypeIconFile)。它需要引用捆绑包中资源文件夹中的 .icns 文件。
可以使用以下命令将资产目录中现有的 .iconset 文件夹转换为 icns:
iconutil --convert icns iconname.iconset
我不确定这是否是预期的行为,或者这是否只是 Xcode 11 的资产目录编译器构建阶段中的一个错误。我通过反馈助手提交了一个错误。
| 归档时间: |
|
| 查看次数: |
2084 次 |
| 最近记录: |