在一些OSX应用程序中,控件单击NSTableView的标题会弹出一个上下文菜单,用户可以选择哪些列可见。
这是我需要手动实现的东西,还是很难找到Cocoa功能?
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;