IBでテーブルビューを備えたスクロールビューのクラスとして設定されるNSScrollViewのサブクラスを作成しました。テーブルのヘッダー ビューの高さを増やし、テーブル ビューのタイトルとして機能するラベルを追加しました。問題は、ヘッダー ビューを高くした分だけテーブルの行が列ヘッダーの下から始まることです (そのため、列のタイトルは新しい背の高いヘッダー ビューの中央に表示されます)。
テーブルの原点またはサイズ、テーブルのクリップ ビュー、ヘッダー ビュー、およびそのクリップ ビューを変更しようとしましたが、ヘッダー ビューのサイズ以外は何も変更されません。これは、カスタム ヘッダー ビューを作成するために使用したコードです。
-(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];
}