可可HUD窗口:删除透明度?

时间:2010-11-10 22:05:48

标签: cocoa hud nstoolbar

我有一个标准的NSPanel设置为HUD风格。我想更改背景颜色,主要是因为我想要一个工具栏,并且看不到任何方法可以使标准的nstoolbar在HUD上看起来不错,也不会直接自定义工具栏的背景。

我知道创建完全自定义窗口的多种方法,并在其他情况下使用它们。在这种情况下,我想要一个窗口提供的所有好东西,但我只是不想要透明度。有趣的是,我可以改变背景颜色,但不能改变alpha。设置alpha值对窗口没有影响。

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

1 个答案:

答案 0 :(得分:0)

设置面板的内容视图(只需在面板中单击以选择它,而不是标题栏)将子类设置为SGPanelView,并使用此类的drawRect方法的实现创建SGPanelView: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