2012-08-17 16 views
5

Ich habe eine benutzerdefinierte Ansicht, die Tasteneingabe akzeptiert, sie befindet sich in einem NSScrollView. Ich habe die acceptsFirstResponder auf ja eingestellt und es akzeptiert das keyDown erfolgreich. Aber jedes Mal, wenn ich eine Taste drücke, höre ich einen Piepton. Ich bin mir sicher, dass da noch etwas anderes gebraucht wird aber ich kann mich nicht erinnern, was .. Bitte helfen.Unerwünschter Signalton, wenn eine Taste gedrückt wird

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

Haben Sie '[self fastenFirstResponder]' im Initialisierungscode Ihres NSView? – alecail

+0

Nein, wenn ich auf das Steuerelement klicke, wird es zum Ersthelfer. Aber um sicher zu gehen, habe ich mit dem obigen Code nachgesehen, ob es ein Ersthelfer war. Es ist. –

Antwort

6

Verstanden .. der Signalton bei keyDown auftritt, bei KeyUp nicht .. so den Signalton zu entfernen. Ich muss damit umgehen ... leer wird ausreichen. Der Schlüssel ist, es nicht zu 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; 
     } 


    }