2011-10-03 79 views
3

我有一个NSTableView,在没有用户干预的情况下添加项目。当用户回到包含NSTableView的对话框并单击某个项目时,该项目将突出显示。但是,项目不会突出显示是否右键单击某个项目。有没有办法突出显示右键单击的项目?NSTableView:如何突出显示右键单击的项目?

我目前有以下几点:

void Dialog::menuAction(ui::Menu::Item* item) 
{ 
    // Highlight the item clicked 
    [tableView row:item select:YES] 
    ... 
} 

但这似乎并没有工作。

+1

是不是Objective-C的代码? – 2011-10-04 07:01:19

+0

你有没有得到解决方案? – Zeeshan

回答

1

这可能不是你想要的,但它可能有帮助。我遇到了获取右键单击的行以获取上下文菜单的问题。我使用的是大纲视图,而不是表格视图,它位于主窗口中,而不是对话框。

我有我的outlne视图出口。在处理菜单的对象中,我有以下方法:

-(void)setSelectionFromClick{ 

NSInteger theClickedRow = [myOutlineView clickedRow]; 

NSIndexSet *thisIndexSet = [NSIndexSet indexSetWithIndex:theClickedRow]; 
[myOutlineView selectRowIndexes:thisIndexSet byExtendingSelection:NO]; 
} 

我在每个菜单操作的开始都调用此方法。

设置了点击行,无论按下哪个按钮。但是选择只会在点击左键时自动改变。顺便说一句,这也适用于控制点击。

+0

在这里你得到的是clickedRow,但是在NSTableView的情况下,我们没有得到相同的值,用户没有右键点击。 – Zeeshan

0

我认为你应该继承NSTableView并重写OnMouseUp和OnMouseDown,以便在获得右键单击事件时返回左键单击事件。

相关问题