NSTableView:用于编辑列配置的上下文菜单

时间:2015-12-23 16:27:36

标签: macos cocoa nstableview

在某些OS X应用程序中,按住Control键并单击NSTableView的标题会弹出一个上下文菜单,让用户可以选择哪些列可见。

这是我需要手动实现的,还是有些难以找到Cocoa功能?

1 个答案:

答案 0 :(得分:2)

AFAIK,它不是NSTableView的标准功能。您必须通过设置NSTableHeaderView的菜单来自行实现。

  NSMenu *menu = [[NSMenu alloc] initWithTitle:@""];
  menu.font = [NSFont menuFontOfSize:[NSFont smallSystemFontSize]];
  menu.showsStateColumn = YES;
  for (NSTableColumn *column in tableView.tableColumns) {
    NSMenuItem *item = [menu addItemWithTitle:column.headerToolTip action:@selector(toggleTableColumn:) keyEquivalent:@""];
    item.state = [column isHidden] ? NSOffState : NSOnState;
    item.representedObject = column;
  }
  tableView.headerView.menu = menu;