在我的COCOA Mac应用程序中,有一个NSSegmentedControl按钮用于队列ON/OFF功能。现在,我需要提供相同的键盘快捷键。例如,对于“队列开”(如果已关闭),反之亦然。
有没有人做过这种功能的?
感谢致敬,
巴伦
最佳答案
由于我没有找到通过接口(interface)构建器向NSSegmentedControl添加键盘绑定(bind)的方法,因此我以编程方式进行了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 的 View Controller 添加到Window类PMWindow中。在此示例中,我对按键 (123)和 (124)使用react。
为了使本示例更完整,我在此处添加了方法的实现,当有人点击我的NSSegmentedControl元素的单元格时将调用该方法:
- (IBAction)lastOrNext:(id)sender {
switch ([sender selectedSegment]) {
case 0:
[self last];
break;
case 1:
[self next];
break;
}
}
关于macos - COCOA Mac应用程序中NSSegmentedControl按钮的键盘快捷键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13085651/