COCOA Mac应用程序中NSSegmentedControl按钮的键盘快捷键

时间:2012-10-26 10:59:42

标签: macos cocoa nssegmentedcontrol

在我的COCOA Mac应用程序中,有一个NSSegmentedControl按钮用于队列ON / OFF功能。现在我需要为它提供键盘快捷键。例如,对于Queue ON,如果已经是Off,反之亦然。

有人做过这种功能吗?

谢谢和问候, 巴伦

1 个答案:

答案 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;
    }
}