我正在尝试使用带有不透明控件的透明圆形窗口制作HUD,这在Xcode弹出窗口,本机音量控制等应用中很常见。
我正在使用此处详述的技术:How to implement HUD-style window like Address Book's "Show in Large Type" 但这会使视图中的控件呈现透明。我在控件上尝试了setAlphaValue:1.0但没有效果。搜索其他解决方案指向Matt Gemmell的RoundedFloatingPanel组件。我不能在Xcode 4中打开这个项目,但是看看代码,据我所知,唯一的区别似乎是在Matt的代码中他将窗口的alpha设置为1.0,并在NSRect中使用透明填充视图。我试过这个,但最终仍然使用透明控件。
答案 0 :(得分:3)
不出所料,Matt Gemmell的代码运作得很好而且我犯了一个错误。我忘记了我在代码中的其他地方也弄乱了窗口的alpha,以便让它在关闭时淡出。
要为遇到此问题的其他人总结一下,如果在NSWindow上设置alpha,则该窗口中的控件也将是透明的。而是在NSView中的NSBezierPath填充颜色上设置alpha。就像Matt Gemmell的代码一样。 :)