我有一个基于视图的表格视图,其中一行包含 NSPopupButtons。当用户更改 popUpButton 时,我需要获取包含此 popUpButton 的表行。
我首先期望得到与
NSInteger clickedRow = [tableView rowForView: ((NSPopUpButton*) sender)];
但是动作的发送者总是一个NSMenuItem
对象而不是NSPopUpButton
. NSMenuItem
然而不是一个视图,所以我不能使用rowForView
它。
目前我的 IBAction 看起来像这样:
- (IBAction)changedPopUp:(id)sender {
NSMenuItem* selectedMenuItem = ((NSMenuItem*) sender);
NSPopUpButton* popupButton = (NSPopUpButton*)[selectedMenuItem view];
NSInteger clickedRow = [tableView rowForView:popupButton];
//[...]
}
但是视图属性不是自动设置的,我发现为每个 NSMenuItem 手动设置它非常不方便。
没有简单的方法来获取表格行吗?