我正在为OS X制作网络客户端应用程序。有一部分用户界面 - 让我们称之为前端 - 启动网络会话,然后是网络会话本身。
我希望应用程序将会话生成到单独的进程中。换句话说,应用程序将具有单个前端进程,然后是0..N会话进程。前端流程将有一个完整的Cocoa UI(NSWindow +菜单栏等),,但每个会话也是如此。会议一旦启动,将主要独立于前端 - 需要很少的进程间通信。
这是一个棘手的问题 - 我不希望这看起来像是多个应用程序。我希望主要的前端进程以及所有会话进程都可以使用单个Dock磁贴进行控制(例如,按照OS X标准行为,单击Dock磁贴,所有应用程序窗口按z顺序出现) ,我希望应用程序菜单中的应用程序名称相同,我希望Dock磁贴具有一个对应于所有会话窗口的窗口列表(由不同的进程运行)。
这一定是可能的 - Chrome做的非常相似。有没有人粗略概述他们认为我能做到这一点的方式?
更新: 仔细研究过这个问题后,我现在想,以任何干净的方式都不可能做到这一点。特别是,Chrome在单个父进程中创建了所有NSWindows,然后只是从辅助进程编组页面呈现。我将此标记为已回答'如果没有其他人可以添加任何东西,在几天内。