【发布时间】:2016-01-05 22:17:28
【问题描述】:
我正在开发 Mac 应用程序。我最终想在我的应用程序中使用默认应用程序图标。从应用程序的 Info.plist 和 Resource 文件夹中,我可以获得 .icns 文件并将其转换为我需要的图像格式。但我需要知道与特定文件扩展名关联的默认应用程序(如果有)。
那么如何获取系统当前与给定文件扩展名关联的默认应用程序?
【问题讨论】:
标签: macos
我正在开发 Mac 应用程序。我最终想在我的应用程序中使用默认应用程序图标。从应用程序的 Info.plist 和 Resource 文件夹中,我可以获得 .icns 文件并将其转换为我需要的图像格式。但我需要知道与特定文件扩展名关联的默认应用程序(如果有)。
那么如何获取系统当前与给定文件扩展名关联的默认应用程序?
【问题讨论】:
标签: macos
不要去挖掘其他应用的捆绑包。最好在适合您要提出的问题的抽象级别上工作。如果您想获取 Finder(或邮件附件等)将为特定类型的文件显示的图标,请使用 NSWorkspace iconForFileType: 方法。
【讨论】:
我认为您正在寻找的是 OSX 启动服务的一部分:LSCopyDefaultApplicationURLForContentType API。这将返回有关可以打开特定 Uniform Type Identifiers 的应用程序的信息。还有一个类似的 API,称为 LSCopyDefaultApplicationURLForURL,用于检查哪个应用打开了特定的已知文件。
【讨论】: