我正在写一个有一个NSWindow的可可应用程序。我想将窗口的背景颜色更改为特定颜色。但是检查器中的窗口属性仅提供“纹理窗口”替代方案。如何根据需要制作窗口的颜色?
答案 0 :(得分:26)
尝试使用窗口实例上的颜色调用实例方法setBackgroundColor :.什么是名字..;)
像这样:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
// Option 1
[self.window setBackgroundColor: NSColor.whiteColor];
// Option 2 - using dot syntax
self.window.backgroundColor = NSColor.whiteColor;
}
答案 1 :(得分:14)
更改窗口背景的最简单方法是直接在.xib文件中设置它。
根本没有代码:
答案 2 :(得分:5)
只要您只想更改内容区域的背景颜色,而不是框架和工具栏,就不需要更改NSWindow
的子类。您需要做的是子类NSView
并使您的自定义视图绘制所需的颜色,然后将该类的实例设置为窗口的内容视图。
或者,您可以设置无边框NSImageView
或NSColorWell
作为内容视图,但我不确定Apple是否适用于拥有子视图的用户。如果没有,你必须把你的窗户留空。
那就是说,你应该确实确保自定义背景颜色是合适的。几乎总是,它不是,你应该坚持使用Aqua或HUD外观。
答案 3 :(得分: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