2017-11-13 6 views
0

私はNSVisualEffectViewを使って透明性を実現するmacOSアプリケーションに取り組んでいます。 iOSのCover Sheetウィジェットビューと同様の効果を得たいです。スクロールアップすると、コンテンツが検索バーの周囲に表示されます。私はmacOSアプリケーションでこれをしたいので、テーブルビューのコンテンツがあるポイントの下にスクロールされると、NSVisualEffectViewはそれをぼかします。どうすればいい?前もって感謝します。コンテンツがその下にあるときにのみ表示されるNSVisualEffectViewを作成する方法

答えて

0

以下、ウィンドウ上で設定されたビジュアルエフェクトビューのインスタンスを作成します。

func setVisualEffectToWindow(window: NSWindow) { 
     // create the visual effect view 
var blurryView = NSVisualEffectView(frame: NSRect(x: 0, y: 0, width: 800, height: 600)) //Create with size you want or you can use window content bound here 
    // this is default value but is here for clarity 
    blurryView.blendingMode = NSVisualEffectBlendingMode.BehindWindow 

    // set the background to always be the dark blur 
    blurryView.material = NSVisualEffectMaterial.Dark 

    // set it to always be blurry regardless of window state 
    blurryView.state = NSVisualEffectState.Active 

    window.contentView.addSubview(blurryView) 
} 
+0

このコンテンツは、その下にあるときに「ぼかし」はのみ表示されることを保証していますか? Interface Builderを使用してNSVisualEffectViewを作成しようとしましたが、アプリケーションには鮮やかな暗いテーマがあるため、NSVisualEffectViewの色はアプリケーションの残りの部分と一致しません。 – Jake3231

+0

はい、動作しない場合は、コードスニペットなどを閲覧してください。 –

+0

ありがとうございます。私はウィンドウ内でブレンドを試みていますが、NSVisualEffectViewの陰影はアプリケーションの背景から少し離れています。ウィンドウコントローラーのウィンドウに鮮やかな暗いテーマを設定していて、Interface BuilderでNSVisualEffectViewを作成しました。 – Jake3231