OS X中如何设置NSView的背景颜色


在iOS中,我们设置UIView的背景色十分的简单,只需要设置UIViewbackgroundColor即可:

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

你可能感兴趣的:(OS X中如何设置NSView的背景颜色)