【问题标题】:NSView custom context menu and keysNSView 自定义上下文菜单和键
【发布时间】:2011-12-07 13:41:36
【问题描述】:
我在我的应用程序的主窗口中有一个 NSCollectionView,用于管理自定义 NSView 项目的集合。每个自定义视图都有一个分配给它的上下文菜单。我想为某些项目添加快捷键,例如将“删除”键与“从集合中删除项目”操作相关联。我已经通过 IB 为上下文菜单项添加了等效键,但问题是如何使集合项响应按下的键?
我知道我可以通过将此菜单添加到 NSApp 的主菜单并跟踪所选项目来实现这一点。除此之外还有什么办法吗?
【问题讨论】:
标签:
cocoa
keyboard-shortcuts
nsmenu
【解决方案1】:
您可以将这样的内容添加到您的 NSCollectionView 子类中:
- (BOOL)performKeyEquivalent:(NSEvent *)theEvent
{
BOOL rv = NO;
id firstResponder = self.window.firstResponder;
if ([firstResponder isKindOfClass:[NSView class]] && [firstResponder isDescendantOf:self]) {
// Note: performKeyEquivalent: messages come DOWN the view hierarchy, not UP the responder chain.
// Perform the key equivalent
}
if (!rv) {
rv = [super performKeyEquivalent:theEvent];
}
return rv;
}