在iOS中,我们设置UIView的背景色十分的简单,只需要设置UIView的backgroundColor即可:
UIView *colorView = [[UIView alloc] init];
colorView.backgroundColor = [UIColor redColor];
但是在OS X中NSView没有backgroundColor属性,NSView中的backgroundColor属性在layer属性之中,所以要设置NSView的背景色,我们需要这样写:
NSView *colorView = [[NSView alloc] init];
// 这里的backgroundColor属性的类型是CGColorRef,所以我们需要转换一下
colorView.layer.backgroundColor = [NSColor redColor].CGColor;
但是运行的时候会发现,colorView其实颜色并没有改变,是因为,在OS X中我们还需要调用
[colorView setNeedsDisplay:YES];
这样,我们的colorView就变成红色了。
完整代码如下:
NSView *colorView = [[NSView alloc] init];
colorView.layer.backgroundColor = [NSColor redColor].CGColor;
[colorView setNeedsDisplay:YES];