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 回答