沉默可可错误发出哔哔声

Lin*_*ios 3 keyboard macos cocoa objective-c first-responder

我有一个Cocoa应用程序,它通过视图层次结构中的自定义视图捕获按键.此视图实现keyUpkeyDown方法,并接收按键.即便如此,Cocoa仍然坚持每次按键时都会播放系统错误声音.有解决方案吗

注意:虽然我试图让这个视图成为第一响应者,但它没有用.这可能与它有关.

NSG*_*God 5

如果你已经失败试图使视图中的第一个响应者,这很可能是因为NSView回报NOacceptsFirstResponder.您可以让NSView子类重写acceptsFirstResponder以返回YES:

- (BOOL)acceptsFirstResponder {
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

这应该消除哔哔声.或者,你可以让NSView子类覆盖NSResponderperformKeyEquivalent:方法返回YES,这也应该消除NSBeeps:

- (BOOL)performKeyEquivalent:(NSEvent *)event {
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

更新:

不知道该建议什么.我实际上写了一个"键盘清洁助手"应用程序,旨在基本上做你想要的类似的东西.(当我想要清理键盘时,我在笔记本电脑上使用它,没有数百次按键随机重命名文件或导致重复的错误蜂鸣声).

示例项目:http://www.markdouma.com/developer/KeyboardCleanerHelper.zip

运行该应用程序,我根本无法发出蜂鸣声(通知呼叫记录到控制台).