Cocoa HUD窗口:是否删除透明度?

Cocoa HUD窗口:是否删除透明度?,cocoa,hud,nstoolbar,Cocoa,Hud,Nstoolbar,我有一个标准的NSPanel设置为HUD样式。我想更改背景颜色,主要是因为我想拥有一个工具栏,而看不到任何方法可以使标准nstoolbar在HUD上看起来很好,也看不到任何方法可以直接自定义工具栏的背景 我知道有很多方法可以创建完全自定义的窗口,并在其他情况下使用这些方法。在这种情况下,我想要窗口提供的所有好东西,但我不想要透明度。有趣的是,我可以更改背景颜色,但不能更改alpha。设置alpha值对窗口没有影响 以前有人解决过这个问题吗?将面板的内容视图的子类(只需在面板内部单击以选择它,而不

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

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


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

将面板的内容视图的子类(只需在面板内部单击以选择它,而不是标题栏)设置为
SGPanelView
,并通过实现类的drawRect方法使其成为
SGPanelView
:SGPanelView,NSView的子类:

- drawRect:(NSRect)dirtyrect {
  [[NSColor blackColor] set];
  [NSBezierPath fillRect:[self bounds]];
}
应该有用。如果不工作,请尝试将
边界
更改为



有关详细信息,请参见。

不行-工具栏实际上不是contentView绘图的一部分。工具栏直接绘制窗口背景,而不是内容视图。使用
[[window contentView]superView]
获取窗口视图。请注意,您必须更改rect,因为它包含标题栏。