cocoa - 按下按键时发出不需要的蜂鸣声

标签 cocoa nsview nsresponder

我有一个接受按键输入的自定义 View ,它位于 NSScrollView 内。我已将 acceptsFirstResponder 设置为 yes,并且它成功接受 keyDown。但每次我敲击一个键时,我都会听到一声蜂鸣声。我确信还需要其他东西,但不记得是什么了..请帮忙。

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

NSLog(@"is first responder %i", self.window.firstResponder == self);

switch (theEvent.keyCode) {
    case KeyCodeEnumBackspace:
    case KeyCodeEnumDelete:
    {
        if (self.scheduleControl.selectedEvent) {
            [self.scheduleControl deleteEvent:self.scheduleControl.selectedEvent];
        }
    }
        break;

    default:
        break;
}
   }

最佳答案

明白了。蜂鸣声发生在 keyDown 处,而不是在 KeyUp 处。要消除蜂鸣声,我需要处理它,一个空的实现就足够了。关键是将其传递给 super

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

}

- (void)keyUp:(NSEvent *)theEvent {
    switch (theEvent.keyCode) {
        case KeyCodeEnumBackspace:
        case KeyCodeEnumDelete:
            if (self.scheduleControl.selectedEvent) {
                [self.scheduleControl deleteEvent:self.scheduleControl.selectedEvent];
            }
            break;
        default:
            break;
    }
}

关于cocoa - 按下按键时发出不需要的蜂鸣声,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12010745/

相关文章:

objective-c - 将 NSSlider 与 NSTableView 绑定(bind)

cocoa :调整分割 View subview 的大小

javascript - cocoa插件调用网页javascript

objective-c - NSVisualEffectView 上的 NSButton : Wrong Background Color

objective-c - 自定义 View 中的 mouseDown 事件不显示正确的单击坐标

macos - 按住 Cmd ⌘ 键时,NSResponder 未接收到 keyUp 事件

cocoa - 在 Cocoa 中捕获未处理的键盘事件

cocoa - 为什么 -[NSTextStorage ReplaceCharactersInRange : withAttributedString:] sometimes, 有时不支持其他字符集中的字体?

macos - 如何在 Mac 应用程序中检索 Wi-Fi 热点列表?

objective-c - Cocoa 和 XCode 中的关键事件