【发布时间】:2019-03-04 22:10:25
【问题描述】:
一段时间以来,我一直在尝试筛选信息,但在确定哪些信息仍然相关时遇到了问题。似乎由于某种原因,有关该主题的信息少于应有的信息。
我正在开发一个为 macOS 分发的应用程序。我想将自定义文件扩展名与我的应用程序相关联。我希望用户能够双击其中一个文件并让应用程序打开它。我很容易选择应用程序来打开文件,但我不知道如何获取打开文件的文件名。
到目前为止,我发现的唯一一件事就是从 AppleScript 创建应用程序。然后 AppleScript 可以解析参数并使用它们调用主应用程序。这种方法有两个问题。
首先,如果用户更改它并直接选择应用程序会发生什么?我想它只是行不通吗?有什么办法吗?
其次,我如何首先自动关联应用程序?我找到了有关 CFBundleTypeExtensions 的信息,但后来发现这已被弃用。我发现了一些关于 UTI 和 Launch Services 的信息。如何将 UTI 添加到 plist 文件并运行 lsregister 命令是有意义的。但是,您将如何自动执行此操作?用户使用 dmg 安装应用程序,我可以在什么时候运行 lsregister 命令?
【问题讨论】:
标签: c++ macos file-association dmg