2012-10-17 91 views
2

我有一个基于视图的表视图,其中一行包含NSPopupButtons。当用户更改popUpButton时,我需要获取包含此popUpButton的表行。获取基于NSTableView的NSPopUpButton视图基于NSTableView

我第一次有望与

NSInteger clickedRow = [tableView rowForView: ((NSPopUpButton*) sender)]; 

但动作的发送者始终是NSMenuItem对象不是NSPopUpButton让行。但是不是一个视图,所以我不能使用rowForView

目前我IBAction为看起来是这样的:

- (IBAction)changedPopUp:(id)sender { 
    NSMenuItem* selectedMenuItem = ((NSMenuItem*) sender); 
    NSPopUpButton* popupButton = (NSPopUpButton*)[selectedMenuItem view]; 
    NSInteger clickedRow = [tableView rowForView:popupButton]; 
    //[...] 
} 

但视图属性未自动设置,我觉得非常不方便手动设置为每NSMenuItem。

有没有简单的方法来获取表格行?

回答

0

不要为每个NSMenuItem设置操作和目标。改为设置NSPopupButton的动作和目标。然后,sender将是NSPopupButton实例,您可以使用rowForView

缺点是当然不能针对不同的菜单项目采取不同的操作。

相关问题