我有一个接受按键输入的自定义 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/