gpt4 book ai didi

xcode - Mac OS X : How to launch an application (. 应用程序)来自 "Command Line Tool"类型的应用程序?

转载 作者:行者123 更新时间:2023-12-02 22:09:59 25 4
gpt4 key购买 nike

在 Xcode 4.6 中,我基于“命令行工具”项目模板创建了一个新的应用程序。

如何以编程方式从该“命令行工具”应用程序启动另一个应用程序(.app 应用程序包)?

最佳答案

有很多方法可以实现这一点,使用 Launch Services 和/或 NSWorkspace

识别捆绑应用程序的一种更灵活的方法是通过其捆绑标识符 (CFBundleIdentifier),它是一个类似于 com.apple.TextEdit 的字符串。这使您可以识别应用程序,而不必硬编码应用程序所在的假设路径,或者通过硬编码应用程序包的名称,用户可以轻松更改这两者。您可以使用 NSWorkspacelaunchAppWithBundleIdentifier:options:additionalEventParamDescriptor:launchIdentifier:启动应用程序。如果您还不知道,可以通过检查应用程序包的 AppName.app/Contents/Info.plist 文件来获取应用程序包的包标识符。然后使用以下代码:

if (![[NSWorkspace sharedWorkspace]
launchAppWithBundleIdentifier:@"com.apple.TextEdit"
options:NSWorkspaceLaunchDefault
additionalEventParamDescriptor:NULL
launchIdentifier:NULL]) {
NSLog(@"launching app failed!);
}

重要提示:NSWorkspaceAppKit.framework 框架的一部分,最初不包含在“命令行工具”项目模板中。要将其添加到您的项目,请在目标列表中选择目标,如下图所示,然后单击 + 按钮添加其他框架。

enter image description here

同时添加 AppKit.frameworkCocoa.framework

这将导致所有 3 个都在“将二进制文件与库链接”步骤中列出。那时,您可以从链接阶段删除 Foundation.frameworkAppKit.framework,只留下 Cocoa.framework,如下所示:

enter image description here

关于xcode - Mac OS X : How to launch an application (. 应用程序)来自 "Command Line Tool"类型的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15484390/

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