敲击键时发出不必要的蜂鸣声 [英] Unwanted beep when a key is hit
本文介绍了敲击键时发出不必要的蜂鸣声的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个接受键输入的自定义视图,它位于 NSScrollView
内.我已将 acceptsFirstResponder
设置为 yes 并且它成功接受了 keyDown.但是每次我按下一个键,我都会听到一声哔哔声.我确定还有其他需要但不记得是什么.. 请帮忙.
-(void)keyUp:(NSEvent *)theEvent{NSLog(@"是第一响应者 %i", self.window.firstResponder == self);开关(事件.keyCode){案例 KeyCodeEnumBackspace:案例 KeyCodeEnumDelete:{如果(self.scheduleControl.selectedEvent){[self.scheduleControl deleteEvent:self.scheduleControl.selectedEvent];}}休息;默认:休息;}}
解决方案
明白了.哔声发生在 keyDown
,而不是 KeyUp
.要删除哔声,我需要处理它,一个空的实现就足够了.关键是不是把它传给super
- (void)keyDown:(NSEvent *)theEvent {}- (void)keyUp:(NSEvent *)theEvent {开关(事件.keyCode){案例 KeyCodeEnumBackspace:案例 KeyCodeEnumDelete:如果(self.scheduleControl.selectedEvent){[self.scheduleControl deleteEvent:self.scheduleControl.selectedEvent];}休息;默认:休息;}}
I have a custom view that accepts key input, its inside a NSScrollView
. I have set the acceptsFirstResponder
to yes and it is accepting the keyDown successfully. But every time I hit a key, I hear a beep. I'm sure that there something else needed but can't remember what.. Please help.
-(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; } }
解决方案
Got it. The beep occurs at keyDown
, not at KeyUp
. To remove the beep, I need to handle it, and an empty implementation will suffice. The key is not to pass it to 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;
}
}
这篇关于敲击键时发出不必要的蜂鸣声的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文