2012-08-17 13 views
5

tengo una vista personalizada que acepte la entrada de clave, su interior un NSScrollView. Establecí el acceptsFirstResponder en yes y está aceptando el keyDown con éxito. Pero cada vez que presiono una tecla, escucho un pitido. Estoy seguro de que hay algo más que se necesita pero no recuerdo qué ... Por favor ayuda.pitido no deseado cuando una tecla es golpeado

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

¿Ha llamado '[self becomeFirstResponder]' en el código de inicialización de su NSView? – alecail

+0

No, cuando hago clic en el control, se convierte en el primero en responder. Pero solo para asegurarme de que verifiqué con el código anterior si era el primero en responder. Es. –

Respuesta

6

GOT IT .. el pitido se produce en keyDown, no en KeyUp .. así que quitar la señal sonora. Necesito manejarlo ... vacío bastará. La clave es no pasarla a 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; 
     } 


    } 
Cuestiones relacionadas