2012-08-17 20 views
5

Ho una vista personalizzata che accetta l'input della chiave, all'interno di uno NSScrollView. Ho impostato acceptsFirstResponder su yes e accetto correttamente keyDown. Ma ogni volta che premo un tasto, sento un segnale acustico. Sono sicuro che c'è qualcos'altro necessario ma non ricordo cosa .. Per favore aiuto.Segnale acustico indesiderato quando si preme un tasto

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

Hai chiamato '[self becomeFirstResponder]' nel codice di inizializzazione del tuo NSView? – alecail

+0

No, quando faccio clic sul controllo diventa il primo risponditore. Ma per sicurezza, ho controllato con il codice sopra se si trattava di un primo interlocutore. È. –

risposta

6

Got it .. il segnale acustico si verifica a keyDown, non a TastoSu .. quindi per rimuovere il segnale acustico. Ho bisogno di gestirlo ... vuoto basterà. La chiave non è passarla 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; 
     } 


    }