5

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

有人做过这种功能吗?

谢谢和问候,巴伦

4

1 回答 1

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;
    }
}
于 2013-12-27T15:05:26.413 回答