我的应用程序主窗口中有一个NSCollectionView,它管理一组自定义NSView项目。每个自定义视图都分配了一个上下文菜单。我想为某些项添加快捷键,例如将“删除”键与“从集合中删除项目”操作相关联。我已经通过IB为上下文菜单项添加了等效键,但问题是我如何使收集项响应按下的键?
我知道我可以通过将此菜单添加到NSApp的主菜单并跟踪所选项目来实现此目的。除此之外还有其他办法吗?
答案 0 :(得分:0)
您可以在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;
}