Ponieważ nie mogę znaleźć sposobu na dodanie klawiatury wiążącą NSSegmentedControl pośrednictwem interfejsu konstruktora, zrobiłem id programowo. Stworzyłem klasę zwyczaj oknie o nazwie 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
dodałam mój widok kontroler o nazwie PMViewController przez konstruktora interfejsu do PMWindow klasy okna. W tym przykładzie mam reakcji na klawisze, < strzałka w lewo> (123) i < strzałka w prawo> (124).
Dla kompletności tym przykładzie dodałem tutaj wdrożenie metody, która jest wywoływana, gdy ktoś uderza komórkę mojego elementu NSSegmentedControl:
- (IBAction)lastOrNext:(id)sender {
switch ([sender selectedSegment]) {
case 0:
[self last];
break;
case 1:
[self next];
break;
}
}