0

正如这篇文章的标题中提到的,我想设置一个子类的边框(颜色和宽度),该子类NSTableCellView在基于视图的NSTableView. 我尝试了以下

self.layer.borderColor = [[NSColor greenColor] CGColor];
self.layer.borderWidth = 3.0;

我将代码放入initWithCoderawakeFromNib没有获得所需的结果。backgroundColor可以在drawRect-Method 中更改。有人可以指出我正确的方向吗?

谢谢

编辑

这是我使用的解决方案NSFrameRect

- (void)drawRect:(NSRect)dirtyRect
{
    [NSGraphicsContext saveGraphicsState];

    [[NSColor lightGrayColor]set];
    NSFrameRect([self bounds]);

    [NSGraphicsContext restoreGraphicsState];
}
4

1 回答 1

1

默认情况下,OS X 上的视图不受层支持。你首先需要设置WantsLayer: YES

但是,如果您使用的是 drawRect:您可以只使用 NSFrameRect() 或类似的函数之一,或者在单元格视图子类中使用 NSBezierPath 进行绘制。但是,请记住,通常行视图在基于视图的表中进行背景绘制。

听起来你还需要学习一些关于在 Cocoa 中绘图的知识。

于 2014-12-12T17:56:58.757 回答