【问题标题】:displaying menu and menu items显示菜单和菜单项
【发布时间】:2012-01-10 08:48:57
【问题描述】:

我有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

}

【问题讨论】:

  • 你的问题是......?
  • 看来您没有正确阅读我的查询...
  • 这里没有问题。连问号都没有。你在问什么?

标签: objective-c cocoa


【解决方案1】:

我更喜欢继承 NSTableView 并实现- (NSMenu *)menuForEvent:(NSEvent *)theEvent

获取行的典型方法是

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

【讨论】:

  • 是的,这将返回相应表格视图的菜单。我怎么知道显示菜单。
  • 你可以实现 + (NSMenu *)defaultMenu 然后在 menuForEvent 里面修改它(禁用项目或添加其他)调用 [[self class] defaultMenu];
猜你喜欢
  • 1970-01-01
  • 2014-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多