我正在编写一个具有 NSWindow 的可可应用程序。我想将窗口的背景颜色更改为特定颜色。但检查器中的窗口属性仅提供“纹理窗口”选项。如何根据需要制作窗口的颜色?
shrads
问问题
27591 次
4 回答
28
尝试使用窗口实例上的颜色调用实例方法 setBackgroundColor:。名字里有什么.. ;)
像这样:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
// Option 1
[self.window setBackgroundColor: NSColor.whiteColor];
// Option 2 - using dot syntax
self.window.backgroundColor = NSColor.whiteColor;
}
于 2008-12-30T00:50:34.113 回答
16
更改窗口背景的最简单方法是直接在 .xib 文件中设置它。
根本没有代码:
- 选择您的窗口(NSWindow 类应出现在 Class 字段中)
- 单击用户定义的运行时属性下的 [+] 按钮
- 输入“backgroundColor”并选择颜色
于 2014-10-20T13:52:47.650 回答
5
只要你只想改变内容区域的背景颜色,而不是框架和工具栏,你就不需要子类化NSWindow
. 您需要做的是子类NSView
化并让您的自定义视图绘制您想要的颜色,然后将该类的一个实例设置为窗口的内容视图。
或者,您可以设置无边框NSImageView
或NSColorWell
作为内容视图,但我不确定 Apple 是否意味着那些拥有子视图。如果没有,您必须将窗口留空。
也就是说,您应该确定自定义背景颜色是合适的。几乎总是这样,您应该坚持使用 Aqua 或 HUD 外观。
于 2008-12-29T16:07:03.577 回答
1
您必须继承 NSWindow 才能更改背景,然后覆盖实现
- (id)initWithContentRect:(NSRect)contentRect
styleMask:(NSUInteger)styleMask
backing:(NSBackingStoreType)bufferingType
defer:(BOOL)flag
例如,参见 Mat Gemmell 的 HUDWindow:http ://mattgemmell.com/2006/03/12/hudwindow
于 2008-12-29T12:07:49.940 回答