在我的COCOA Mac应用程序中,有一个NSSegmentedControl按钮用于队列ON / OFF功能。现在我需要为它提供键盘快捷键。例如,对于Queue ON,如果已经是Off,反之亦然。
有人做过这种功能吗?
谢谢和问候, 巴伦
答案 0 :(得分:2)
由于我没有找到通过界面构建器向NSSegmentedControl添加键盘绑定的方法,因此我以编程方式进行了id。我创建了一个名为 PMWindow 的自定义Window类:
@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;
}
}