在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];