我一直在尝试自定义NSTableView
,现在已经NSTableHeaderView
和NSTableHeaderCell
了。
我有一个简单的需要。每个NSTableHeaderCell
我想将自定义视图植入。它只包含两个按钮。
以下是一些代码:
我有一个NSTableHeaderCell
类别,只需更改背景颜色,无论是否突出显示。
- (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView
{
[[NSColor blueColor] setFill];
NSRectFillUsingOperation(cellFrame, NSCompositeSourceAtop);
}
-(void)highlight:(BOOL)flag withFrame:(NSRect)cellFrame inView:(NSView *)controlView
{
[[NSColor greenColor] setFill];
NSRectFillUsingOperation(cellFrame, NSCompositeSourceAtop);
}
接下来,我有一个NSViewController
子类,名为NSTableHeaderViewController
。这有一个xib,我把按钮放进去。
最后,在我的主视图中,我使用指定的自定义高度设置NSTableHeaderView
,并将按钮视图添加到其中。
APTableHeaderViewController *tableHeaderVC = [[APTableHeaderViewController alloc] initWithNibName:@"APTableHeaderViewController" bundle:nil];
NSTableHeaderView *tableHeaderView = [[NSTableHeaderView alloc] initWithFrame:NSMakeRect(0, 0, 120, 88)];
[tableHeaderView addSubview:tableHeaderVC.view];
[self.tableView setHeaderView:tableHeaderView];
这部分按预期工作,创建我的120像素高表头蓝色背景,绿色突出显示。但是它只会在标题0,0。
中添加我的按钮视图NSTableHeaderViewControlelr
我有点期待这个,但是标题视图和标题单元格之间有什么区别?
另外,如果我希望我的按钮视图位于每个单元格中,我该如何将其添加到每个单元格?
感谢。