如何将鼠标事件从Cocoa事件循环调度到Carbon窗口?

sza*_*yat 5 macos cocoa macos-carbon

我有一个Carbon应用程序,其中包含一些嵌入式Cocoa视图,我正在尝试逐步移植到Cocoa.该应用程序当前使用Carbon事件循环(RunApplicationEventLoop),从Carbon nib文件加载其主窗口,一切都像魅力.

我想要现在做的是替换RunApplicationEventLoop[NSApp run].应用程序正确启动并显示主窗口,但并非所有事件都传递给Carbon事件处理程序.鼠标单击仅传递到嵌入在该Carbon窗口中的Cocoa视图,但不传递给窗口本身的Carbon事件处理程序.

根据我在这里的文件, Everthing应该可行.我基本上是在寻找:

  1. Cocoa/Carbon集成的更详细文档.
  2. 调试事件调度过程的想法.

注意:我已经尝试过两个[NSEvent addLocalMonitorForEventsMatchingMask:]并替换NSWindow sendEvent:(对于创建的NSWindow initWithWindowRef)的实现.鼠标事件肯定会到达那里,但不会到达任何Carbon事件处理程序.