2012-01-10 124 views
0

我有NSTableView對象。我需要在任何時候調用與之相關的菜單。通過我應該調用menuNeedsUpdate方法進行菜單更新。顯示菜單和菜單項目

class MyClass 
{ 
    IBOutlet NSTableView *tableView; 
    IBOutlet NSMenu *mMenu; 
} 

//methods 

void menuNeedsUpdate:(NSMenu*)inMenu 
{ 
    // do menu settings here 

} 

void myMethod:(id)inTableView 
{ 

    NSInteger row = [inTableView selectedRow]; 

    //some condition checking here 

    // invoke menu of the tableView 

} 
+0

而你的問題是......? – 2012-01-10 14:51:03

+0

似乎你還沒有正確閱讀我的疑問... – boom 2012-01-11 05:32:55

+0

這裏沒有問題。甚至不是問號。你在問什麼? – 2012-01-11 13:12:32

回答

0

我寧願子類NSTableView的貫徹- (NSMenu *)menuForEvent:(NSEvent *)theEvent

一個tipical的方式來獲得行

- (NSMenu *)menuForEvent:(NSEvent *)theEvent { 
    NSPoint where = [self convertPoint:[theEvent locationInWindow] fromView:nil]; 
    NSInteger row = [self rowAtPoint:where]; 
} 
+0

是的,這將返回相應tableview的菜單。我怎樣才能顯示菜單。 – boom 2012-01-11 05:32:50

+0

你可以實現+(NSMenu *)defaultMenu然後在menuForEvent裏修改它(禁用項目或添加其他)調用[[self class] defaultMenu]; – dafi 2012-01-11 08:31:45