2012-08-17 48 views
5

我有一个自定义视图,它接受按键输入,其内部为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; 
} 
    } 
+0

你在你的NSView的初始化代码中调用了[self becomeFirstResponder]吗? – alecail 2012-08-18 09:02:39

+0

不,当我点击控件时,它成为第一响应者。但只是为了确保我检查了上面的代码,如果它是第一响应者。它是。 – 2012-08-18 18:51:27

回答

6

明白了..嘟发生的keyDown,而不是在KEYUP ..所以要去除蜂鸣声。我需要处理它...空就够了。关键是不要将它传递给超级

-(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; 
     } 


    } 
相关问题