我有一个带有一些嵌入式 Cocoa 视图的 Carbon 应用程序,我正在尝试逐渐移植到 Cocoa。该应用程序当前使用 Carbon 事件循环 ( RunApplicationEventLoop
),从 Carbon nib 文件加载其主窗口,一切都像魅力一样工作。
我现在要做的是替换RunApplicationEventLoop
为[NSApp run]
. 应用程序正确启动并显示主窗口,但并非所有事件都传递给 Carbon 事件处理程序。鼠标点击只传递给嵌入在该 Carbon 窗口中的 Cocoa 视图,而不传递给窗口本身的 Carbon 事件处理程序。
根据我在这里找到的文档, Everthing 应该可以正常工作。我基本上在寻找:
- 更详细的 Cocoa/Carbon 集成文档。
- 调试事件调度过程的想法。
注意:我已经尝试了这两种[NSEvent addLocalMonitorForEventsMatchingMask:]
方法并替换了NSWindow sendEvent:
(对于用 NSWindow 创建的initWithWindowRef
)的实现。鼠标事件肯定会到达那里,但不会到达任何 Carbon 事件处理程序。