我正在构建一个基于视图的插件架构,其中我有一个单独的插件进程,并希望为每个插件分配一个NSView
. 我已经研究过CARemoteLayerServer/Client
和IOSurfaceRef
使用,但它们都只允许一个绘图视图。一个插件的视图可能有很多子视图,并且可以像它是主应用程序的一部分一样接收事件。有什么办法可以做到这一点?
问问题
577 次
1 回答
2
没有办法NSView
直接跨流程边界进行交互。也就是说,CARemoteLayerServer
支持层树,而不仅仅是单个层。这意味着您的 UI 肯定需要使用层来构建,但NSView
在事件处理方面仍然很有用。
客户端和服务器都可以在它们自己的内部包含共享远程层,NSViews
因为您可以创建一个层托管NSView
并将共享层分配给它。然后NSView
可以拦截鼠标和键盘事件,这些事件可以通过 XPC 连接传递给其他进程,以供其自己NSView
(包含共享层)进行解释。我不完全确定这会有多快,因为我自己没有尝试过,但我认为它几乎与与普通视图交互一样即时。
于 2013-02-04T05:38:25.887 回答