NSTableHeaderView调整大小使表行向下移动

时间:2012-06-01 05:59:13

标签: objective-c macos nsscrollview nstableheaderview

我已经创建了NSScrollView的子类,它被设置为在IB中具有表视图的滚动视图的类。我增加了表格标题视图的高度,并添加了一个标签作为表格视图的标题。问题是表格行在列标题下方开始的数量等于我使标题视图更高的数量(因此列标题显示在新的较高标题视图的中间)。

enter image description here

我已经尝试更改表格的原点或大小,表格的剪辑视图,标题视图及其剪辑视图 - 除标题视图的大小外,这些都不会改变任何内容。这是我用来制作自定义标题视图的代码:

-(void)awakeFromNib {
    //self is a subclass of NSScrollView enclosing an NSTableView
    NSClipView *tableClip = [self.subviews objectAtIndex:0];
    NSClipView *headerClip = [self.subviews objectAtIndex:3];
    NSTableHeaderView *header = [[[self.subviews objectAtIndex:3] subviews]lastObject];
    NSTableView *table = [[[self.subviews objectAtIndex:0] subviews]lastObject];
    NSLog(@"%@  %@  %@  %@",tableClip,headerClip,header,table);

    [header setFrameSize:NSMakeSize(header.frame.size.width, header.frame.size.height+60)];//HeaderView Frame
    NSTextField *titleLabel = [[NSTextField alloc] initWithFrame:NSMakeRect(0, 5, header.frame.size.width,22)];
    titleLabel.selectable = NO;
    titleLabel.font = [NSFont systemFontOfSize:16];
    titleLabel.alignment = NSCenterTextAlignment;
    titleLabel.bordered = NO;
    titleLabel.stringValue = @"This is my title";
    [header addSubview:titleLabel];
}

0 个答案:

没有答案