右键单击NSBrowser
视图中的项目时,选择不会更改。而是单击的项目获取框架并打开上下文菜单。选定的项目和右键单击的项目是两个不同的东西。
在Finder(浏览器视图)中,上下文菜单中的操作对用户右键单击的项目进行操作,这正是我所期望的。如果我使用自定义NSBrowser
控件执行相同操作,则操作将应用于所选项目。
我已将空NSMenu
附加到NSBrowser.menu
以获取服务菜单。有NSBrowser
个clickedRow
/ clickedColumn
属性从[NSMenuDelegate menuWillOpen]
查询时会产生有效值,但这对我系统生成的“服务”菜单项没有帮助。 / p>
如何让上下文菜单对右键单击的项目进行操作?
编辑2017-10-29
我已经将NSBrowser子类化为拖放支持。这是添加上下文菜单的方式。它是一个空NSMenu
,服务菜单会自动添加。
- (void) awakeFromNib
{
NSMenu *m = [[[NSMenu alloc] init] autorelease];
m.delegate = self;
self.menu = m;
}