MacOSX可以将多个NSApplication组合在一起,看起来像是一个吗?

时间:2009-09-10 09:17:46

标签: cocoa user-interface macos

我正在尝试将我的应用程序拆分为不同的子流程,每个子流程都做一个非常具体的事情。主要原因是稳定性和更好的内存利用率,因为我使用保守的垃圾收集器(boehm-weisser)。

我不想做一个完成这一切的巨大过程。

不幸的是,子进程必须显示一些窗口,因此它们需要NSApplication实例。

但我希望它们在Expose中作为一个应用程序出现,并在它们变为活动状态时保留主进程的菜单栏。

有没有办法做到这一点?

3 个答案:

答案 0 :(得分:2)

我相信没有办法做到这一点(没有很多黑客攻击)。

我想到的唯一可能是拥有一个专用的UI流程(这是主要的应用程序),并使用子流程执行大量的IPC。简而言之:将MVC分解为流程。

答案 1 :(得分:1)

没有办法做到这一点。在Mac OS X上,具有关键焦点的应用程序也是主要应用程序,因此拥有主菜单栏,绘制为焦点等等......整个系统围绕这一概念构建,包括Expose, Dock,App Picker,Launch Services等......

我也很好奇为什么你没有使用系统内置的收集器。整个系统经过精心设计,可与此收集器配合使用。它是一个保守的,完全扫描(除了堆栈),几乎完全没有阻塞的收集器。

答案 2 :(得分:1)

这不是Chrome和Stainless正在做的事情吗?

拥有一个与多个工作进程通信的GUI应用程序非常容易。如果您希望这些帮助程序进程呈现UI,那么事情就会变得棘手。

我可以想象没有菜单栏或Dock图标的帮助应用程序。可能有一个选项可以将这些粘贴覆盖窗口放到主应用程序的窗口中。我从来没有像这样远程尝试任何东西。