Cocoa NSView自定义上下文菜单和键

Cocoa NSView自定义上下文菜单和键,cocoa,keyboard-shortcuts,nsmenu,Cocoa,Keyboard Shortcuts,Nsmenu,我在应用程序的主窗口中有一个NSCollectionView,用于管理自定义NSView项的集合。每个自定义视图都有一个指定给它的上下文菜单。我想为某些项目添加快捷键,例如将“删除”键与“从集合中删除项目”操作相关联。我已经通过IB向上下文菜单项添加了等价键,但问题是如何使集合项响应按下的键 我知道我可以通过将此菜单添加到NSApp的主菜单并跟踪所选项目来实现这一点。除此之外还有其他方法吗?您可以向NSCollectionView子类添加类似的内容: - (BOOL)performKeyEqui

我在应用程序的主窗口中有一个NSCollectionView,用于管理自定义NSView项的集合。每个自定义视图都有一个指定给它的上下文菜单。我想为某些项目添加快捷键,例如将“删除”键与“从集合中删除项目”操作相关联。我已经通过IB向上下文菜单项添加了等价键,但问题是如何使集合项响应按下的键


我知道我可以通过将此菜单添加到NSApp的主菜单并跟踪所选项目来实现这一点。除此之外还有其他方法吗?

您可以向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;
}