防止事件监视器 OS X 中出现错误“funk”声音

xan*_*key 5 macos menubar swift

我正在快速编写一个应用程序,它位于屏幕顶部的菜单栏中。我需要一个全局和本地事件监视器来打开特定按键上的弹出窗口。本地事件监视器没有问题,但是当用户从 Finder 等应用程序内部点击键盘命令 (cmd+shift+8) 时,弹出窗口会打开,但也会播放 mac 错误“Funk”声音。有什么办法可以禁用它吗?也许应用程序可以通过某种方式吃掉声音,或者将其注册为有效的键盘快捷键以便永远不会播放声音?

这是代码:

        NSEvent.addGlobalMonitorForEvents(matching: NSEventMask.keyDown, handler: {(event: NSEvent!) -> Void in
        if (event.keyCode == 28 && event.modifierFlags.contains(NSEventModifierFlags.command) && event.modifierFlags.contains(NSEventModifierFlags.shift)){
            self.togglePopover(sender: self)
        }
    });

    NSEvent.addLocalMonitorForEvents(matching: NSEventMask.keyDown, handler: {(event: NSEvent!) -> NSEvent? in
        if (event.keyCode == 28 && event.modifierFlags.contains(NSEventModifierFlags.command) && event.modifierFlags.contains(NSEventModifierFlags.shift)){
            self.togglePopover(sender: self)
        }
        return event
    });
Run Code Online (Sandbox Code Playgroud)

xan*_*key 0

我最终使用MASShortcut作为解决此问题的解决方案。