我是这项技术的新手,我想在父节点和子节点上显示不同的上下文菜单..Right click
问问题
2229 次
2 回答
2
子类化NSOutlineView
并实现- (NSMenu *)menuForEvent:(NSEvent *)theEvent
.
-(NSMenu*)menuForEvent:(NSEvent*)evt
{
NSLog(@"menuForEvent %@ %@",self, [self delegate]);
NSPoint pt = [self convertPoint:[evt locationInWindow] fromView:nil];
int row=[self rowAtPoint:pt];
// create menu ...
return menu;
}
在 Mac OS 10.5 及更高版本上,在 nib 中创建 NSMenu 并设置委托并实现:
-(void)menuNeedsUpdate:(NSMenu *)menu
于 2012-10-18T10:35:33.877 回答
1
斯威夫特版本:
class SubclassOutlineView: NSOutlineView {
override func menu(for event: NSEvent) -> NSMenu? {
let point = convert(event.locationInWindow, from: nil)
let row = self.row(at: point)
let item = self.item(atRow: row)
let menu = NSMenu()
// ...
return menu
}
}
我缺少的一点是item(atRow:
,它为您提供了所需的数据源项。发现在这个相关的问题上:
于 2018-07-14T19:22:53.247 回答