2012-10-26 3 views

risposta

2

Dal momento che non ho trovato un modo per aggiungere una tastiera legame con il NSSegmentedControl tramite interface builder, ho fatto id programmazione. Ho creato una classe di finestra personalizzata denominata PMWindow:

@implementation PMWindow 

- (BOOL)acceptsFirstResponder { 
    return YES; 
} 

- (void)keyDown:(NSEvent *)theEvent { 
    if([self.viewController.lastNextControl isEnabled]) { 
     if([theEvent keyCode] == 123) { 
      [self.viewController last]; 
     } else if([theEvent keyCode] == 124) { 
      [self.viewController next]; 
     } 
    } 
} 

@end 

ho aggiunto il mio controller vista denominata PMViewController tramite il costruttore di interfaccia alla PMWindow classe Window. In questo esempio, sto reagendo alle battute < freccia sinistra> (123) e < freccia a destra> (124).

Per completezza di questo esempio ho aggiunto qui l'implementazione del metodo che viene chiamato quando qualcuno colpisce una cellula del mio elemento NSSegmentedControl:

- (IBAction)lastOrNext:(id)sender { 
    switch ([sender selectedSegment]) { 
     case 0: 
      [self last]; 
      break; 
     case 1: 
      [self next]; 
      break; 
    } 
} 
Problemi correlati