2011-10-20 83 views
3

我試圖做一個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視圖。我嘗試過,但仍然以透明控件結束。

回答

3

所以不出所料,Matt Gemmell的代碼工作得很好,我犯了一個錯誤。我忘了我也在搞亂我的代碼中其他地方的窗口的alpha,以便在關閉時淡出。

爲了總結其他人遇到這個問題,如果你設置NSWindow上的alpha,那個窗口中的控件也將是透明的。相反,在NSView中設置NSBezierPath填充顏色的alpha值。就像Matt Gemmell的代碼一樣。 :)

+0

酷@stdout。我也有這個問題。你應該用這種方式接受你自己的答案!謝謝 – swdev