問題タブ [nsvisualeffectview]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
3732 参照

macos - OSX < 10.10 と下位互換性のある NSVisualEffectView を使用するには?

間もなく登場する OSX 10.10 ("Yosemite") は、新しいタイプのビューである NSVisualEffectView を提供します。これは、窓越しまたは窓内の半透明性をサポートします。私は主に窓越しの半透明性に関心があるので、この質問ではそれに焦点を当てますが、窓内の半透明性にも当てはまります。

10.10 で透過的な透過性を使用するのは簡単です。NSVisualEffectViewビュー階層のどこかに を配置し、 に設定するだけblendingModeですNSVisualEffectBlendingModeBehindWindow。それだけです。

10.10 では、IB で を定義NSVisualEffectViewし、それらのブレンド モード プロパティを設定するだけで、すぐに実行できます。

ただし、以前の OSX バージョンとの下位互換性を維持したい場合は、それができません。XIB に を含めようNSVisualEffectViewとすると、XIB をロードしようとするとすぐにクラッシュします。

10.10 で実行すると透過性を提供し、以前の OS バージョンで実行すると不透明なビューに単純に劣化する「設定して忘れる」ソリューションが必要です。

これまでに行ったことは、問題のビューを XIB の通常の NSView にしてから、(awakeFromNib によって呼び出される) をチェックするコードを追加することです[NSVisualEffectView class] != nil。クラスが定義されたら、NSVisualEffectView のインスタンスを作成します。現在のビューのすべてのサブビューを新しいビューに移動し、所定の位置にインストールします。これは機能しますが、半透明のビューが必要になるたびに記述しなければならないカスタム コードです。

NSProxy オブジェクトを使用すると、これが可能になる可能性があると考えています。これが私が考えていることです:

NSView のカスタム サブクラスを定義します (MyTranslucentView と呼びましょう)。すべての init メソッド (initWithFrame および initWithCoder) で、新しく作成されたオブジェクトを破棄し、代わりにプライベート インスタンス変数 (myActualView) を持つ NSProxy のサブクラスを作成します。初期化時に、OS>=10.10 の場合は myActualView オブジェクトを NSVisualEffectView として作成し、OS<10.10 では通常の NSView を作成することを決定します。

プロキシは、すべてのメッセージを myActualView に転送します。

これはかなりの面倒で低レベルのコードですが、うまくいくはずです。

誰かがこのようなことをしましたか?もしそうなら、あなたは私を正しい方向に向けるか、私に何か指針を与えることができますか?

Apple はYosemiteとの Beta 契約で、以前の Beta 契約よりもはるかにオープンです。これについて一般的な用語で話すことで、ベータNDAに違反しているとは思いませんが、実際に使用するコードNSVisualEffectViewはおそらくNDAの下で共有する必要があります...

0 投票する
1 に答える
907 参照

objective-c - 10.10 TitleBar を通過するソース リスト?

この種のカスタム列のアプリ ビューを実現する方法に興味があります。ソースリストはタイトルバーを直接通過しますが、片側だけで、おそらくタイトルバーを隠してからNSVisualEffectViewを使用したと思いますか? ソース コードやヒントを歓迎します。非常にクールで、Yosemite アプリの UI 要素がかなり広く使用されていることがわかります。

NSTitleBar を直接通過する半透明のソース リスト

この写真の検索バーと [リストの追加] ボタンは明らかに異なるビューにあり、SourceList スタイルの NSOutlineView が 10.10 でこの種の効果を自動的に作成することは完全に理解していますが、ボタンと検索フィールドをソースに配置することはできません。リストのスクロール領域ですが、その背景はソース リストの背景と一致しているため、この効果はソース リスト ベースよりもビュー ベースであると思われます。

0 投票する
6 に答える
7084 参照

objective-c - NSVisualEffectView を使用して、滑らかで丸みを帯びたボリュームのような OS X ウィンドウを作成する方法は?

現在、Volume OS X ウィンドウのようなウィンドウを作成しようとしています。
ここに画像の説明を入力


これを作成するために、独自のNSWindow(カスタム サブクラスを使用して) 透明/タイトルバーなし/シャドウなしで、NSVisualEffectView内部に contentView を持っています。コンテンツ ビューを丸くするサブクラスのコードは次のとおりです。


そして、これが結果です(ご覧のとおり、角は粗く、OS Xの方がはるかに滑らかです):
ここに画像の説明を入力
角をより滑らかにする方法についてのアイデアはありますか?ありがとう

0 投票する
4 に答える
2952 参照

macos - OS X 10.10 でダーク ビブランシーの外観を使用するためにソース リストの選択ハイライトを取得するにはどうすればよいですか?

OS X 10.10 では、ソース リストは明るい鮮やかな外観を使用しているようです。Finder (およびその他のサード パーティ アプリケーション、Things.app など) では、ソース リストで選択された項目は暗い鮮やかな外観で示されます。たとえば、下の画像のデスクトップ行を参照してください。

この動作を再現するにはどうすればよいですか? テーブル行ビューを指定するためにデリゲート メソッドを使用する必要がありますか?

自分でカスタム描画を試みますか、それとももっと簡単なアプローチがありますか? Xcode で標準のソース リスト UI を作成した場合、デフォルトの強調表示は、以前のバージョンの OS X で見られた標準の青い四角形のままです。

明るい鮮やかなスタイルのソースリスト、選択された項目はより暗くなります (暗い鮮やかなスタイルを使用)

0 投票する
2 に答える
1450 参照

objective-c - Yosemite の半透明/ぼやけた背景の鮮やかさの量を制御することは可能ですか?

NSVisualEffectViewクラスを使用してObjective-Cアプリに実装できる、最近Yosemiteによって導入された、いわゆるバイブランシー効果で半透明の量を制御できるかどうかを知りたい.

より具体的な例を次に示します。音量レベルが変更されたときに Yosemite OS X によって表示される半透明効果を考えてみましょう。

ヨセミテ

鮮やかさは、単純なものを使用して得られるものよりもはるかに強力ですNSVisualEffectView(次の画像を参照)。

NSVisualEffectView

2 つの画像を比較すると (スピーカーの形状の違いは無視して背景に注目してください)、Yosemite OS X のボリューム ウィンドウでは、鮮やかさ (ガウスぼかし効果の強さ) がはるかに強いことがわかります。を使用した私のアプリNSVisualEffectView。どうすればそれを手に入れることができますか?

0 投票する
0 に答える
1066 参照

cocoa - wantLayer エイリアシングの問題がある NSVisualEffectView の上にある NSTextField

サブピクセルがサポートされていないため、Core Animationレイヤー(CALayer)を使用する場合、NSTextFieldの背後に無地の背景色が必要であることは承知していますが、NSVisualEffectView背後にあるを使用する必要がありNSOutlineView、上にいくつかのNSTextFieldを使用しています。wantsLayerを YESに設定するとNSOutlineView、悲しいことに、上部のテキストのエイリアスが不十分になります。素敵なぼかしと滑らかなテキストを上に表示するにはどうすればよいですか? これは、スーパービューとして使用するCALayer場合、まったく使用できないということですか?NSVisualEffectView

0 投票する
1 に答える
167 参照

macos - IKImageBrowserView のスーパークラスを NSVisualEffectView に置き換えます

IKImageBrowserView の背景にぼやけた背景を持たせたいと考えています。Apple Documentationによると、IKImageBrowserView は NSView に基づいています。代わりに IKImageBrowserView を NSVisualEffectView から継承して、背景にぼやけた外観を与えることは可能ですか? まず、IKImageView をサブクラス化する必要があると思いますが、次に何をすればよいかわかりません。誰かが私を正しい方向に向けてもらえますか?

ありがとう