【发布时间】:2012-01-18 01:45:23
【问题描述】:
我正在从运行时加载的包创建 NSWindow,因此我没有在应用启动时创建的 NSWindow 的源代码。当我显示我的窗口时,它会收到鼠标事件,但不会收到任何键盘事件。我尝试使用以下方法添加窗口:
[_myWindow makeKeyAndOrderFront:nil];
[[NSApplication sharedApplication].mainWindow addChildWindow:_myWindow ordered:NSWindowAbove];
[NSApp beginModalSessionForWindow:_myWindow];
在所有 3 种情况下,主窗口似乎都在吃掉所有的键盘事件。鼠标事件也泄漏到原始窗口(我可以看到鼠标悬停在高亮显示和按钮响应通过我的窗口单击)。我也试过:
[_myWindow makeMainWindow];
[_myWindow orderWindow:NSWindowAbove relativeTo:[originalWindow windowNumber]];
任何让键盘事件登陆我的窗口的提示将不胜感激。
【问题讨论】:
-
仅供参考,获取事件的窗口是关键窗口,而不是主窗口。
-
makeKeyAndOrderFront 应该使我的窗口成为关键窗口。它似乎仍然没有得到事件。我不确定原始窗口在做什么来获取每个事件...
-
这个问题你解决了吗?
-
有一个事件监视器在窗口之前获取事件的任何变化? developer.apple.com/documentation/appkit/nsevent/…