1

我一直在尝试自定义NSTableViews 并且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 的标题中添加我的按钮视图一次。

我有点期待这一点,但是标题视图和标题单元格之间有什么区别?

另外,如果我希望我的按钮视图位于每个单元格中,如何将其添加到每个单元格中?

谢谢。

4

0 回答 0