2012-01-10 19 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

であり、あなたの質問がある- (NSMenu *)menuForEvent:(NSEvent *)theEvent

を実装することを好みますか...? –

+0

あなたは私の質問を正しく読まなかったようです... – boom

+0

ここに質問はありません。疑問符でもありません。何を聞いていますか? –

答えて

0

私はNSTableViewをサブクラス化し、行を取得するtipical方法は

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

はいこれは、対応するテーブルビューのメニューを返します。メニューを表示する方法を教えてください。 – boom

+0

+(NSMenu *)defaultMenuを実装して、menuForEvent内でそれを変更する(アイテムを無効にする、または他に追加する)[[self class] defaultMenu]; – dafi

関連する問題