gpt4 book ai didi

cocoa - 从 Cocoa 应用程序内执行外部应用程序

转载 作者:行者123 更新时间:2023-12-03 17:40:58 25 4
gpt4 key购买 nike

首先,让我明确一点,我需要的简单(显然我想要的不仅仅是只是为了执行另一个应用程序)。

我需要什么:

  • 使用外部应用程序(类似于“插件”)的功能扩展我的主应用程序
  • 这些外部插件必须与主应用程序分开(就代码/实现而言)
  • 外部插件必须能够无缝集成到主应用程序中
  • 外部应用程序不应该被用户视为“外部”的东西
  • 实现必须遵守App Store条款和沙盒指南。

示例 (尽管这个想法在我脑海中并不是 100% 清晰):

  • 主机应用程序启动
  • 外部应用有一个窗口(及其自己的功能)
  • 执行外部应用程序后,其窗口现在将成为主机应用程序的“工作表”

我不知道我所描述的是否可行。不过,我仍然需要听听您对此的意见。我对这个问题做了很多研究,尽管我即将建立使主机应用程序可通过外部脚本扩展的整个概念(通过 php、python、AppleScript 等获取输入并提供一些输出)。 .),这不包括“插件”有自己的用户界面的情况。

那么,有什么想法吗? (一个例子或一些具体的引用来指出我是理想的......)

最佳答案

有一个新的 API 可以完全满足您的需求:

The XPC Services API, part of libSystem, provides a lightweight mechanism for basic interprocess communication integrated with Grand Central Dispatch (GCD) and launchd. The XPC Services API allows you to create lightweight helper tools, called XPC services, that perform work on behalf of your application.

Daemons and Services Programming Guide

WWDC 2012 videos 对此有很好的讨论。 .

你所描述的很多内容确实是可能的——而且不一定非常困难。然而,正如您自己所说,您的“示例”并不完全连贯。您希望第二个应用程序是独立的,但您不希望它看起来是“外部的”;这些力量并不完全可以调和。由于显而易见的原因,您不太可能做的是接管已经独立运行的应用程序。但您可以启动自己的流程。

通常的架构是让多个守护进程或服务为您执行任务,以及一个还处理所有用户界面的控制进程。如上所述,邮件就是这样工作的。

关于cocoa - 从 Cocoa 应用程序内执行外部应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15053272/

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