【问题标题】:Objective-C - Loop through all installed applicationsObjective-C - 遍历所有已安装的应用程序
【发布时间】:2013-04-04 23:52:20
【问题描述】:

我一直在尝试使用 NSWorkspace 和 fullPathForApplication 但这不能满足我的需求,因为它不会返回正确的应用程序。

我能做到:

[NSBundle bundleWithPath: [[NSWorkspace sharedWorkspace] fullPathForApplication: @"My Application"]];

这将返回最近安装的(我相信):

/Applications/My Application
/Applications/My Application 2

我希望返回“我的申请”,但第二个正在返回。我不想假设所有应用程序都安装在 /Applications/ 中,所以我不只是要遍历一个文件夹。

有谁知道我如何手动遍历所有应用程序并验证哪个是正确的?还是类似于 fullPathForApplication 的方法,它会返回所有结果,而不是随机选择一个?

【问题讨论】:

    标签: objective-c macos cocoa


    【解决方案1】:

    我相信您使用的 NSWorkspace 方法是 LSFindApplicationForInfo() 的外观,据记载它只返回一个应用程序:

    如果找到多个与指定特征匹配的应用程序,Launch Services 会选择一个,其方式与查找用于打开项目的首选应用程序时相同。

    如果您的应用打开特定文件类型或 URL,请使用 LSCopyApplicationURLsForURL(),它会返回匹配应用的数组。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-17
      • 2011-01-15
      • 1970-01-01
      相关资源
      最近更新 更多