如何在Cocoa应用程序中关闭键盘声音?

时间:2011-11-03 09:39:30

标签: c++ objective-c cocoa opengl

我的 OpenGL Cocoa 应用程序出现问题 - 每次触发 keyUp / KeyDown 事件时,都会播放系统声音...如何为我的应用程序禁用此逻辑?

我有一种不好的感觉,由于一些奇怪的原因,我的应用程序可能会将按键视为错误并播放系统警报声......请帮忙!

3 个答案:

答案 0 :(得分:3)

添加到NSView / NSWindow子类

- (void)keyDown:(NSEvent *)theEvent {

并在向上和向下键上设置异常,但对于其他[super keyDown:theEvent];

我认为它可能有意义

答案 1 :(得分:0)

  1. 创建一个Cocoa类,从NSView
  2. 继承它
  3. 将其设置为View的类,而不是故事板中的标准灰色NSView
  4. 将以下内容添加到子类实现中:
  5. @implementation YourCustomNSView
    
    - (BOOL)acceptsFirstResponder {
        return YES;
    }
    
    - (void)keyDown:(NSEvent *)theEvent {
    
        NSLog (@"keypress %@", theEvent);
    //    [super keyDown:theEvent]; // this line triggers system beep error, there's no beep without it
    }
    
    @end
    

答案 2 :(得分:0)

对我来说,以下是最佳解决方案:

bitmap