Objective c 显示菜单和菜单项
我有Objective c 显示菜单和菜单项,objective-c,cocoa,Objective C,Cocoa,我有NSTableView对象。我需要在任何时间点在我的控制下调用与其关联的菜单。通过它,我应该调用menuedsupdate方法来更新菜单 class MyClass { IBOutlet NSTableView *tableView; IBOutlet NSMenu *mMenu; } //methods void menuNeedsUpdate:(NSMenu*)inMenu { // do menu settings here } void myMethod:(
NSTableView
对象。我需要在任何时间点在我的控制下调用与其关联的菜单。通过它,我应该调用menuedsupdate
方法来更新菜单
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
}
我更喜欢子类化NSTableView并实现
-(NSMenu*)menuForEvent:(NSEvent*)theEvent
一个典型的方法是
- (NSMenu *)menuForEvent:(NSEvent *)theEvent {
NSPoint where = [self convertPoint:[theEvent locationInWindow] fromView:nil];
NSInteger row = [self rowAtPoint:where];
}
你的问题是…?似乎你没有正确阅读我的问题…这里没有问题。连问号都没有。您在问什么?是,这将返回相应tableview的菜单。如何告知显示菜单。您可以实现+(NSMenu*)defaultMenu,然后在menuForEvent内调用[[self class]defaultMenu]修改它(禁用项目或添加其他项目);