设置子类NSTableCellView的边框

时间:2014-12-12 17:18:33

标签: objective-c macos cocoa nstablecellview

正如本文标题中所述,我想设置在基于视图的NSTableCellView内使用的子类NSTableView的边框(颜色和宽度)。我尝试了以下

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

我将代码放在initWithCoderawakeFromNib中,但没有得到预期的结果。在backgroundColor - 方法中可以更改drawRect。有人能指出我正确的方向吗?

由于

修改

以下是使用NSFrameRect

的解决方案
- (void)drawRect:(NSRect)dirtyRect
{
    [NSGraphicsContext saveGraphicsState];

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

    [NSGraphicsContext restoreGraphicsState];
}

1 个答案:

答案 0 :(得分:1)

OS X上的视图默认不支持图层。首先需要setWantsLayer:YES

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

听起来你还有一些关于绘制Cocoa的知识。