gpt4 book ai didi

macos - 如何在 OS X 中实现 "Open With"上下文菜单

转载 作者:行者123 更新时间:2023-12-02 05:07:30 24 4
gpt4 key购买 nike

OS X 中可以打开文件以启动各自应用程序的应用程序通常让用户选择将打开文件的应用程序。 Finder 就是一个例子。

我仍然不清楚实现这个的最佳解决方案是什么。挑战在于性能和显示应用程序的图标。

首先,为了获取应用列表,我只找到了 LSCopyApplicationURLsForURL()。

我现在的主要困难是获取应用程序图标。我所拥有的只是应用程序的 URL(路径)。我知道获取图标的唯一方法是创建一个 CFBundle 对象,然后读取应用程序的 plist 以获取图标数据。但这似乎涉及大量磁盘访问,我可以想象如果应用程序位于远程文件服务器上,效率会非常低。

我相信还有一个关于应用程序的缓存数据库,其中包括图标和显示名称(无扩展名)等。但是它的 API 在哪里?

注意:该应用程序是基于 Carbon 的,但如果需要,我可以使用 Cocoa (NS...) 函数。此外,支持 10.5,甚至 10.4,将不胜感激。

最佳答案

好的。我最终解决了它。

我现在使用 Carbon 函数 GetIconRefFromFileInfo(),它在 Lion 中仍然有效,尽管它被标记为已弃用/过时。

我也曾尝试使用 QLThumbnailImageCreate(),但奇怪的是,这并没有给我带来任何结果。不知道我做错了什么。

对于 Cocoa 应用程序,可以使用 [[NSWorkspace sharedWorkspace] iconForFile:path](感谢 DevonTechnologies 的 C. Grunenberg 提供的这个技巧,它与 EasyFind 一起使用)。

关于macos - 如何在 OS X 中实现 "Open With"上下文菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9480721/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com