問題タブ [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.
macos - viewController のビューを NSVisualEffectsView にする
ストーリーボードに新しいviewControllerを作成します。そのviewControllerのビューをウィンドウを通して表示したい。したがって、私が理解している限り、そのビューを NSVisualEffects ビューに変換する必要があります。
インターフェイスビルダーを使用してそれを行うにはどうすればよいですか?
インターフェイスビルダーを使用して追加されたそのビューに既に多くのオブジェクトがあるため、インターフェイスビルダーを使用してそれを解決するとよいでしょう。
ありがとう
cocoa - Cocoa: レイヤーに基づく NSView シェードが NSWindow の contentView に追加されると、NSVisualEffectView のコンポーネントの背景が正しくレンダリングされない
Cocoaアプリ(OS X Yosemite)でモーダルウィンドウがシートとして表示されている間、メインウィンドウを暗くするためのシェードとして使用している半透明のNSViewがあります。
分離されたサンプル プロジェクトについては、以下の「更新」セクションを参照してください。
シェードは適切に表示されますが、ビュー階層の下位にある他のコンポーネントをオーバーレイする場所では、それらのコンポーネントの背景が表示され、半透明でレンダリングされます (完全に透明なままである必要があります)。
上のスクリーンショットでは、進行状況インジケーター (小さな四角形) と NSTextField (ラベル) の半分を陰で覆っているのがわかります。シートがカバーしている半分は、背景で正しくレンダリングされません。残りの半分は正常にレンダリングされます。
ビュー階層の下位にあるコンポーネントは、ブレンディング モード Behind Window、マテリアル Light、および外観 Vibrant Light に設定され、setWantsLayer が true に設定された NSVisualEffectView にあります。
レイヤーベースの NSVisualEffectViews と NSViews の間のコンポジションの相互作用について、何かが欠けていると感じています。
私はまだ Cocoa の複雑さに慣れていないので、間違ったレンダリングの原因について考えていただければ幸いです。ありがとう!
アップデート
問題を実証するために、簡単に分離されたテストケースを作成しました。ここから複製できます。
また、アルファ付きの画像 (コーナー インジケーター) とアルファなしの画像 (星) で発生する問題も示しています。
回避策
Daniel Chote (ツイートを参照)のおかげで回避策は、すべてのコンポーネントで背景色を透明に手動で設定することです。ダニエルが言及しているように、「恐ろしい解決策」ですが、少なくとも解決策です:)
(まだ機能しない理由について頭を悩ませる前に、Draws Background をオンにすることを忘れないでください。) :)
誰かがより良い解決策を持っているなら、私はすべて耳にします。少し待って、何も聞こえない場合は、レーダーを提出します。
macos - Layer Host NSView で NSVisualEffectView を使用する方法
OSXアプリにNSViewがあり、CALayerを使用してあらゆる種類のアニメーションを実行しています。このビューは、多数の小さなレイヤーを含むレイヤー ホスト ビューです。
NSVisualEffectBlendingModeBehindWindow blendingMode を使用して NSVisualEffectView を追加して、Yosemite でぼかし透明効果をサポートしたいと考えています。
問題は、レイヤー ホスト ビューをオフにすると NSVisualEffectView が機能することですが、レイヤー ホスト ビューをオンにすると、ぼかし透明効果がなくなり、空白の白い不透明な背景が残ります。
私の質問は次のとおりです。
xcode - NSVisualEffectView のブレンド
HardLight合成操作で画像を描画したい。次の描画コードで NSImageView を作成しました。
}
通常の場合、うまく機能します。ただし、NSVisualEffectView では機能しません。
NSVisualEffectView に HardLight をブレンドするにはどうすればよいですか?
以下にリンクされている画像では、ウィンドウの背景とカラー画像に HardLight をブレンドする角の丸い四角形を見ることができます。しかし、NSVisualEffectView (赤い下の四角形) ではグレーのみが描画されます。
https://www.dropbox.com/s/bcpe6vdha6xfc5t/Screenshot%202015-03-27%2000.32.53.png?dl=0
nsview - Swift allowVibrancy
迅速に活気を与えるようにビューを設定するにはどうすればよいですか。私はしようとしています:
しかし、エラーが発生します:Objective-Cセレクター「allowsVibrancy」を使用したメソッド「allowsVibrancy()」は、同じObjective-Cセレクターを持つスーパークラス「NSView」からの「allowsVibrancy」のゲッターと競合します
あるいは:
私はOnjective Cでこれを行うことができます:
何かご意見は?
cocoa - NSPopover での NSScrollView のぼかし
NSScrollView
アプリの NSPopover 内にいくつかの があります。スクロールしたコンテンツを上にして、Safari のようなぼかしを作成したいと考えています。ただし、これは NSPopover であり、スタイル マスクを設定できないため、解決策が見つかりません。ヘッダーの高さの空白行を追加し、ヘッダー ( NSVisualEffectView
) をNSScrollView
(テーブル ビュー) の上に配置しようとしましたが、この方法は機能しますが、スクローラーはヘッダーの下に入ります。では、それを行うための「正しい方法」はありますか?
objective-c - NSVisualEffectView の NSScrollView/NSCollectionView でちらつきが発生する
NSPopover内のNSVisualEffectView内にNSCollectionViewがあります。リフレッシュするたびに( NSCollectionViewItemを追加、削除、リロードするか、 NSCollectionViewItem のビューのボタンをクリックするだけでも)、コントロールに不具合があります。
これは、開いているときに取得しようとするスクリーンショットです。
多かれ少なかれこのようなものですが、再描画が発生した場合のみ:
また、境界線がオフになっているボタンを配置すると、クリックするとちらつきのように色が消えます。
さまざまなビュー/コントロールで背景色を設定しようとしましたが、空の場合、NSCollectionView は常に (UI の色の選択に応じて) 黒/白になるようです:
私は何かを逃しましたか?
編集:
scrollView.needsDisplay = false/true
アイテムの変更の前後に追加することで、ちらつきの一部がなくなります。それでも、ほとんどの問題は依然として存在します。
また、水平スクロールバーを強制的に有効にしたり、サブビューの自動サイズ変更を無効にしたりすると、アイテムの追加/削除時にちらつきが表示されなくなります。