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

5
在我的COCOA Mac应用程序中,有一个NSSegmentedControl按钮用于队列的开/关功能。现在我需要为相同的功能提供键盘快捷键。例如,如果队列处于关闭状态,则启用队列,反之亦然。
是否有人实现过这种功能?
谢谢和问候, Barun
1个回答

2

由于我无法通过界面构建器为NSSegmentedControl添加键盘绑定,所以我通过编程的方式实现它。我创建了一个名为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中。在此示例中,我对按键< left arrow >(123)和< right arrow >(124)做出反应。

为了完整起见,在此处添加了一个方法的实现,该方法在有人点击我的NSSegmentedControl元素的单元格时被调用:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接