在某些OS X应用程序中,按住Control键并单击NSTableView的标题会弹出一个上下文菜单,让用户可以选择哪些列可见。
这是我需要手动实现的,还是有些难以找到Cocoa功能?
答案 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;