gpt4 book ai didi

macos - NSWindow 不接收键盘事件

转载 作者:行者123 更新时间:2023-12-03 05:07:45 33 4
gpt4 key购买 nike

我正在从运行时加载的包创建一个 NSWindow,因此我没有在应用程序启动时创建的 NSWindow 的源代码。当我显示窗口时,它接收鼠标事件,但不接收任何键盘事件。我尝试使用以下方法添加窗口:

[_myWindow makeKeyAndOrderFront:nil];
[[NSApplication sharedApplication].mainWindow addChildWindow:_myWindow ordered:NSWindowAbove];
[NSApp beginModalSessionForWindow:_myWindow];

在所有 3 种情况下,主窗口似乎正在吞噬所有键盘事件。鼠标事件也会泄漏到原始窗口(我可以看到鼠标悬停在高亮显示上,按钮响应通过窗口的点击)。我也尝试过:

[_myWindow makeMainWindow];
[_myWindow orderWindow:NSWindowAbove relativeTo:[originalWindow windowNumber]];

任何让键盘事件落在我的窗口上的提示将不胜感激。

最佳答案

您可以子类化 NSApplication 并重写 sendEvent: 以在将事件发送到 keyWindow 之前打印 [[NSApplication sharedApplication] keyWindow] (不要忘记调用 super实际发送事件)。

如果按键窗口没有接收到事件,那么您可能会遇到 event monitor在事件被调度之前捕获事件的地方。

关于macos - NSWindow 不接收键盘事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8904147/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com