2010-11-10 95 views
0

我有一个标准的NSPanel设置为HUD风格。我想更改背景颜色,主要是因为我想要一个工具栏,并且没有看到任何方法使HUD上的标准nstoolbar看起来不错,也没有直接定制工具栏背景的方法。可可HUD窗口:删除透明度?

我意识到创建完全自定义窗口的多种方式,并在其他情况下使用这些窗口。在这种情况下,我想要一个窗口提供的所有优点,但我不想透明。有趣的是,我可以改变背景颜色,但不是阿尔法。设置阿尔法值对窗口没有影响。

之前有人解决过这个问题吗?

回答

0

设置面板的内容视图的(只需点击面板内给它,而不是标题栏选择)子类SGPanelView并作出SGPanelView这个实现类的的drawRect方法:SGPanelView是NSView的一个子类:

- drawRect:(NSRect)dirtyrect { 
    [[NSColor blackColor] set]; 
    [NSBezierPath fillRect:[self bounds]]; 
} 

应该工作。如果不工作,请尝试将bounds更改为frame


有关更多信息,请参阅http://developer.apple.com/library/mac/#documentation/cocoa/reference/ApplicationKit/Classes/NSView_Class/Reference/NSView.html

+0

不能做 - 工具栏实际上不是contentView绘图的一部分。工具栏直接绘制窗口的背景,而不是内容视图。 – SG1 2010-11-15 19:19:28

+0

使用'[[window contentView] superView]'来获得窗口的视图。请注意,您必须更改rect,因为它包含标题栏。 – 2010-11-15 19:33:17