Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个标准的 NSPanel 设置为 HUD 样式。我想更改背景颜色,主要是因为我想要一个工具栏,并且看不到任何使标准 nstoolbar 在 HUD 上看起来不错的方法,也没有直接自定义工具栏背景的方法。
我知道创建完全自定义窗口的多种方法,并在其他情况下使用这些方法。在这种情况下,我想要一个窗口提供的所有好东西,但我只是不想要透明度。有趣的是,我可以更改背景颜色,但不能更改 alpha。设置 alpha 值对窗口没有影响。
以前有人解决过这个问题吗?
将面板的内容视图(只需在面板内单击以选择它,而不是标题栏)的子类设置为SGPanelView并SGPanelView使用您的类的 drawRect 方法的实现来实现:SGPanelView,NSView 的子类:
SGPanelView
- drawRect:(NSRect)dirtyrect { [[NSColor blackColor] set]; [NSBezierPath fillRect:[self bounds]]; }
应该管用。如果不起作用,请尝试更改bounds为frame.
bounds
frame
有关更多信息,请参阅http://developer.apple.com/library/mac/#documentation/cocoa/reference/ApplicationKit/Classes/NSView_Class/Reference/NSView.html。