0

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];
}
4

0 に答える 0