如何将子视图添加到NSTableHeaderCell?

时间:2014-08-11 11:55:32

标签: objective-c macos nstableview nstableheaderview nstableheadercell

我一直在尝试自定义NSTableView,现在已经NSTableHeaderViewNSTableHeaderCell了。

我有一个简单的需要。每个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

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

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

感谢。

0 个答案:

没有答案