沉默可可错误发出哔哔声

时间:2012-11-22 20:34:27

标签: objective-c macos cocoa keyboard first-responder

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

注意:虽然我尝试将此视图设为第一响应者,但它无法正常工作。这可能与它有关。

1 个答案:

答案 0 :(得分:5)

如果您未成功尝试将视图作为第一响应者,则很可能因为NSViewacceptsFirstResponder返回NO。您可以让NSView子类重写acceptsFirstResponder以返回YES:

- (BOOL)acceptsFirstResponder {
    return YES;
}

这应该消除哔哔声。或者,您可以让NSView子类覆盖NSResponder的{​​{1}}方法返回YES,这也应该消除NSBeeps:

performKeyEquivalent:

更新:

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

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

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