2016-05-14 61 views
5

NSVisualEffectView應用於NSWindow(Swift或Objective-C)時,可以調整模糊半徑和透明度嗎?我嘗試了NSVisualEffectMaterial(黑暗,中等,光線)的所有變化 - 但這並沒有削減。在下面的圖片中,我用左邊的CGSSetWindowBackgroundBlurRadius和右邊的NSVisualEffectView蘋果公司的非公開API。調整NSVisualEffectView模糊半徑和透明度

enter image description here

我想達到的左側有什麼樣子,但似乎我貶謫使用權的方法。

這裏是我的代碼:

blurView.blendingMode = NSVisualEffectBlendingMode.BehindWindow 
blurView.material = NSVisualEffectMaterial.Medium 
blurView.state = NSVisualEffectState.Active 
self.window!.contentView!.addSubview(blurView) 

可能,相關 - 但沒有回答我的問題:

回答

2

雖然我不會推薦除非您已準備好回退到未來發行版中,否則您可以使用以下內容將NSVisualEffectView分類爲您想要的內容:

​​

儘管這不會使用私人API的本身,它開始挖成你不擁有,所以一定要仔細檢查你正在找回是你所期望的層層次結構,並如果沒有,優雅地失敗。例如,在10.10優勝美地上,Backdrop層是視覺效果視圖的直接受騙者,因此未來可能會發生變化。

+0

嗨,謝謝你的回答,但不幸的是,這似乎並沒有調整透明度。 –

+0

這個例子是針對窗口模糊的,所以你可能需要繞着圖層層次結構來獲取你想要的特定圖層。在'updateLayer'中設置斷點,然後不斷調用'po self.layer.sublayers'來查看在視覺效果視圖中需要搜索的內容。方便地,大多數圖層都被命名,所以您可以像這樣一點一點地鑽取。我相信還有另一層叫做'Tint'的顏色也可以控制顏色。 –