3

我有一个 Cocoa 应用程序,它通过视图层次结构中的自定义视图捕获按键。这个视图实现了keyUpkeyDown方法,并且接收到按键。即便如此,Cocoa 还是坚持每次按键都播放系统错误音/叮当。有什么解决办法吗?

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

4

1 回答 1

7

如果您尝试将视图设置为第一响应者但未成功,则很可能是因为NSView返回NO. acceptsFirstResponder您可以让您的NSView子类覆盖acceptsFirstResponder以返回 YES:

- (BOOL)acceptsFirstResponder {
    return YES;
}

那应该消除哔哔声。或者,您可以让NSView子类 overrideNSResponderperformKeyEquivalent:方法返回 YES,这也应该消除 NSBeeps:

- (BOOL)performKeyEquivalent:(NSEvent *)event {
    return YES;
}

更新:

不知道该建议什么。我实际上写了一个“键盘清洁助手”应用程序,它的设计基本上是为了做一些类似于你想要的事情。(当我想清洁键盘时,我在笔记本电脑上使用了它,并且没有按数百次按键来随机重命名文件或导致重复的错误哔声)。

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

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

于 2012-11-22T21:27:57.837 回答