1

右键单击NSBrowser视图中的项目时,选择不会改变。相反,单击的项目会获得一个框架并打开一个上下文菜单。选定的项目和右键单击的项目是两个不同的东西。

在Finder(浏览器视图)中,上下文菜单中的操作对用户右键单击的项目进行操作,这是我所期望的。如果我对自定义控件执行相同NSBrowser操作,则会将操作应用于所选项目。

我附加了一个空NSMenuNSBrowser.menu获取服务菜单。从 查询时,有NSBrowser's clickedRow/clickedColumn属性会产生有效值[NSMenuDelegate menuWillOpen],但这对系统生成的 Services 菜单项没有帮助。

如何使上下文菜单对右键单击的项目进行操作?

编辑 2017-10-29

我将 NSBrowser 子类化为拖放支持。这就是添加上下文菜单的方式。它是空NSMenu的,会自动添加服务菜单。

- (void) awakeFromNib
{
    NSMenu *m = [[[NSMenu alloc] init] autorelease];
    m.delegate = self;
    self.menu = m;
}
4

0 回答 0