在cocoa中设置NSView和NSImageView的背景颜色

14 cocoa objective-c background-color

我在IB中制作了一些NSViews%NSImageView,如何在应用程序awakesFromNib时为每个设置背景颜色?

谷歌搜索后,我发现可以通过创建自定义类NSView或NSImageView并在其drawRect方法中设置颜色来完成.

他们可以通过其他方式设置背景颜色,而无需为View/ImageView创建额外的类.

谢谢

Sur*_*eet 41

他们是两种设置NSView/NSImageView背景颜色的方法,我找到了它.

第一:通过子类化NSView/NSImageView

- (void)drawRect:(NSRect)aRect
{
    [[NSColor redColor] set];
    NSRectFill([self bounds]);
}
Run Code Online (Sandbox Code Playgroud)

第二:

不要像你在问题中提到的那样创建子类.然后

[_backgroundView setWantsLayer:YES];
[_backgroundView.layer setBackgroundColor:[[NSColor redColor] CGColor]]];
Run Code Online (Sandbox Code Playgroud)

_backgroundView是IBOutlet /对象NSView/NSImageView.你只需要访问一层,NSView/NSImageView为他提供backgroundcolor而无需继承它们.


moh*_*acs 11

如果没有子类化NSView,你不能绘制自定义的东西但是你可以改变图层的背景颜色.

[yourView setWantsLayer: YES];
[yourView.layer setBackgroundColor: [NSColor redColor].CGColor];
Run Code Online (Sandbox Code Playgroud)