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];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容