我一直在尝试自定义NSTableView
s 并且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 像素高的表格标题,蓝色背景,绿色突出显示。但是,它只会NSTableHeaderViewControlelr
在 0、0 的标题中添加我的按钮视图一次。
我有点期待这一点,但是标题视图和标题单元格之间有什么区别?
另外,如果我希望我的按钮视图位于每个单元格中,如何将其添加到每个单元格中?
谢谢。