Сочетания клавиш для кнопки NSSegmentedControl в приложении COCOA Mac
В моем приложении COCOA Mac есть одна кнопка NSSegmentedControl для включения / выключения очереди. Теперь мне нужно предоставить сочетание клавиш для того же. Например, для очереди, если она уже была выключена, и наоборот.
Кто-нибудь делал этот тип функционала?
Спасибо и всего наилучшего, Барун
1 ответ
Поскольку я не нашел способа добавить привязку клавиатуры к NSSegmentedControl через конструктор интерфейса, я сделал id программно. Я создал собственный класс Window с именем 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
Я добавил свой контроллер представления с именем PMViewController через конструктор интерфейса в класс Window PMWindow. В этом примере я реагирую на нажатия клавиш <стрелка влево> (123) и <стрелка вправо> (124).
Для полноты этого примера я добавил здесь реализацию метода, который вызывается, когда кто-то попадает в ячейку моего элемента NSSegmentedControl:
- (IBAction)lastOrNext:(id)sender {
switch ([sender selectedSegment]) {
case 0:
[self last];
break;
case 1:
[self next];
break;
}
}