2012-10-17 135 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

缺點是當然不能針對不同的菜單項目採取不同的操作。

相關問題