0

テーブルビューのヘッダーにグラデーションを塗りつぶそうとしています。これまでのところ、NSTableHeaderView をサブクラス化し、その中でこのコードを使用することでそれを達成できます-

- (void)drawRect:(NSRect)dirtyRect {
    // Drawing code here.

    NSGradient *gradientToFill = [[NSGradient alloc] initWithStartingColor:[NSColor colorWithCalibratedRed:0.8828125 green:0.8984375 blue:0.91015625 alpha:1.0]
                                                               endingColor:[NSColor colorWithCalibratedRed:0.5546875 green:0.59765625 blue:0.66015625 alpha:1.0] ];
    [gradientToFill drawInRect:dirtyRect angle:90];
}

以前はこのように表示されていました-

ここに画像の説明を入力

今、それはこのように現れています-

ここに画像の説明を入力

上のスクリーン ショットに示すように、このコードを使用すると、いくつかの問題に直面しました。

  1. 列ヘッダーのタイトルが表示されません。
  2. ヘッダー列の区切りが表示されません。

これらの問題を解決する方法、またはそれを実装するためのより良い方法を誰かに提案できますか?

4

1 に答える 1

1

描画メソッドでNSTableHeaderCellグラデーションをカスタマイズして塗りつぶす必要があります。次のメソッドを実装する必要があります。NSCell's

- (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView

-(void)highlight:(BOOL)isHighlighted withFrame:(NSRect)cellFrame inView:(NSView *)view

- (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView;

于 2011-12-23T15:40:35.260 に答える