我有一个Cocoa应用程序,它通过视图层次结构中的自定义视图捕获按键。此视图实现keyUp
和keyDown
方法,并接收按键。即便如此,Cocoa仍然坚持每次按键时都会播放系统错误声音。任何解决方案?
注意:虽然我尝试将此视图设为第一响应者,但它无法正常工作。这可能与它有关。
答案 0 :(得分:5)
如果您未成功尝试将视图作为第一响应者,则很可能因为NSView
为acceptsFirstResponder
返回NO
。您可以让NSView
子类重写acceptsFirstResponder
以返回YES:
- (BOOL)acceptsFirstResponder {
return YES;
}
这应该消除哔哔声。或者,您可以让NSView
子类覆盖NSResponder
的{{1}}方法返回YES,这也应该消除NSBeeps:
performKeyEquivalent:
更新:
不确定建议什么。我实际上写了一个“键盘清洁助手”应用程序,旨在基本上做你想要的类似的东西。 (当我想要清洁键盘时,我在笔记本电脑上使用它,而没有数百次按键随机重命名文件或导致重复的错误蜂鸣声。)
示例项目:http://www.markdouma.com/developer/KeyboardCleanerHelper.zip
运行该应用程序,我根本无法发出哔声(通知呼叫会记录到控制台)。