【问题标题】:Filling gradient in NSTableHeaderView not working properlyNSTableHeaderView 中的填充渐变无法正常工作
【发布时间】:2012-01-19 09:54:51
【问题描述】:

我正在尝试在 tableview 的标题中填充渐变。到目前为止,我可以通过继承 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. 标题列分隔符未出现。

谁能建议我如何解决这些问题或一些更好的方法来实现它?

【问题讨论】:

    标签: cocoa nstableview nstableheaderview


    【解决方案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;

    【讨论】:

      猜你喜欢
      • 2017-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      相关资源
      最近更新 更多