gpt4 book ai didi

cocoa - 如果在其他应用程序中按下全局键盘快捷键,如何防止发出蜂鸣声?

转载 作者:行者123 更新时间:2023-12-03 17:31:00 25 4
gpt4 key购买 nike

Mac OS X 10.6 — cocoa

我正在使用全局事件监视器来使用自定义键盘快捷键显示状态项菜单:

globalEventMonitor = [NSEvent addGlobalMonitorForEventsMatchingMask:NSKeyDownMask handler:^(NSEvent *event)
{
if ([event keyCode] == kVK_F12)
{
[self handleGlobalShortcut];
// How to prevent system beep?
}
}];
此解决方案有效,但每次用户按 F12 时系统都会发出蜂鸣声,并且 事件应用程序不响应此按键事件。

有什么办法可以防止事件应用程序在每次使用全局快捷方式时发出蜂鸣声吗?

最佳答案

在事件监视器中,您需要激活应用程序,以便接收按键事件。

[NSApp activateIgnoringOtherApps:YES];

否则,事件将传递到当前事件的应用程序(将发出蜂鸣声)。

编辑:看起来这行不通。

根据文档“您无法修改或以其他方式阻止事件传递到其原始目标应用程序”。

因此,Snow Leopard 的新 addGlobalMonitorForEventsMatchingMask API 不适合处理热键。您将需要继续使用旧的 Carbon RegisterEventHotKey API。幸运的是,这个 API 与 Snow Leopard 上的 64 位 Cocoa 兼容。

关于cocoa - 如果在其他应用程序中按下全局键盘快捷键,如何防止发出蜂鸣声?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1880555/

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