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

BKN*_*BKN 5 macos cocoa nssegmentedcontrol

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

有人做过这种功能吗?

谢谢和问候,巴伦

Mir*_*mer 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
Run Code Online (Sandbox Code Playgroud)

我通过界面生成器将名为PMViewController的视图控制器添加到 Window 类 PMWindow。在此示例中,我对击键< 向左箭头 > (123) 和< 向右箭头 > (124) 做出反应。

为了本示例的完整性,我在此处添加了当有人点击 NSSegmentedControl 元素的单元格时调用的方法的实现:

- (IBAction)lastOrNext:(id)sender {
    switch ([sender selectedSegment]) {
        case 0:
            [self last];
            break;
        case 1:
            [self next];
            break;
    }
}
Run Code Online (Sandbox Code Playgroud)