使用Apple OS X Cocoa框架,如何在另一个进程的窗口上发布工作表(向下滑动模式对话框)?
编辑:澄清一下:
我的应用程序是进行Subversion版本控制的Finder扩展(http://scplugin.tigris.org/).我的应用程序的一部分是插件(Finder的上下文菜单项); 然而,我的应用程序的大部分是在一个单独的守护进程中.出于几个原因,我们选择将几乎所有代码放入守护进程; 插件只定义菜单本身,Apple-Events定义到守护进程.
有时,守护程序需要提示用户提供进一步的信息.它可以在屏幕上为此抛出一个窗口,但这是破坏性的(随机定位),在我看来这里的工作流程是合法的模态,例如"从菜单中选择一个文件,选择'提交',提供提交注释,做手术."
进程间协作(例如传递某种类型的引用)是可以接受的:两个进程都是我的,但我想避免将表单的代码绑定到主进程中.
实际上,听起来你正试图在视图级别进行进程间通信,这实际上并不是Cocoa的工作方式.如果你将你的图层分开多一点,事情会容易得多.
为什么不将表单代码放入其他进程?它是视图代码,视图代码本质上是特定于进程的.在这里做的正确的事情可能是为你的插件代码添加一些通用的模态表支持,以及你的守护进程可以召唤该代码的IPC调用.试图将视图对象传送到远程进程将是一个噩梦,如果你可以使它工作.
你正在用这种方法对抗框架.