我正在尝试在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];
}
所以之前看起来是这样的
现在看起来像这样-
如上面的屏幕截图所示,当我使用此代码时,我遇到了几个问题:
列标题标题未得到显示。
标题栏分隔符未出现。
谁能建议我如何解决这些问题或更好的实施方法?
最佳答案
您必须自定义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;