6

キー入力を受け入れるカスタムビューがあり、その中にNSScrollView. を yes に設定しacceptsFirstResponder、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;
}
   }
4

2 に答える 2

9

とった。ビープ音は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;
    }
}
于 2012-08-18T19:02:42.920 に答える