Was ist der richtige Weg, um die Modi Vibrant Dark (NSAppearanceNameVibrantDark
) oder Vibrant Light (NSAppearanceNameVibrantLight
) mit einer NSWindow
zu verwenden?Wie benutzt du die dunkle Schwingung auf einem NSWindow?
Ich baue eine Anwendung und möchte das neue Vibrant Dark-Erscheinungsbild als Option für die Hauptanwendung NSWindow
anbieten. Das Fenster selbst ist ein ziemlich einfaches Fenster mit einem NSToolbar
über die Oberseite und einer Bildlaufansicht als Hauptinhaltsbereich.
Es gibt viele Informationen von Apple über die Verwendung der neuen Vibrationsauftritte in Verbindung mit einer NSVisualEffectsView
, aber ich bin auf der Suche nach einer Erklärung, wie man diese Erscheinungen auf einer NSWindow
verwendet.
In der Header-Datei gibt es einen Kommentar, der besagt, dass die dynamischen Erscheinungen nur auf NSVisualEffectsView
festgelegt werden sollten. Es wird nicht erwähnt, dass es auf NSWindow
unterstützt wird. Die WWDC-Videos sprechen darüber, dass Sie Layer-Backed Views verwenden und dass Sie die Lebendigkeit Ihrer Subviews zulassen, wenn Sie die neuen dynamischen Erscheinungsbilder verwenden, aber auch hier wird nicht erwähnt, dass sie auf einem NSWindow
verwendet werden. Der VisualEffectsPlayground-Beispielcode enthält ein Beispiel für eine Facetime-ähnliche Anwendung, die den Modus "Dunkle Lebendigkeit" verwendet, aber keine Symbolleiste aufweist und die Maske mit vollem Inhalt verwendet.
Aus dieser Information, mache ich folgend in meiner NSWindowController's windowDidLoad
Methode:
[self.window.contentView setWantsLayer:YES];
self.window.appearance = [NSAppearance appearanceNamed:NSAppearanceNameVibrantDark];
Und sicher genug, ich bar eine schwarzes NSToolbar
mit einem schwarzen Fenstertitel. So sieht es aussieht wie es richtig funktioniert, aber wenn meine scrollview scrollt seinen Inhalt (Thumbnails von Bildern) die Standard-Transluzenz unter der NSToolbar
und die Titelleiste des Fensters ist entweder nicht vorhanden oder ist zufällig vorhanden. Es scheint kein Muster zu geben. Manchmal, wenn ich den Scrollview scrolle, wird der Inhalt im "unscharfen" Zustand unter der Symbolleiste und der Titelleiste angezeigt. Andere Zeiten, wenn ich scrolle, sind die Symbolleiste und Titelleiste nur ein opakes Schwarz. (Die Titelleiste und die Symbolleiste zeichnen immer noch ihre Titel und Schaltflächen.)
Wenn ich keine Ebene für die Inhaltsansicht des Fensters anfordere, dann bekomme ich mehr eine graue Titelleiste und einen Fenstertitel als eine "reine" schwarze . (My Scrollhintergrundfarbe kann entweder weiß, dunkelgrau oder schwarz sein.)
Jede Hilfe oder Klärung, wie man richtig einen NSWindow
konfigurieren (enthält eine NSToolbar
und eine NSScollView
) die neuen Lebhaftigkeit Erscheinungen zu verwenden wäre sehr geschätzt .
http://stackoverflow.com/questions/24414483/how-can-i-use-nsvisualeffectview-in-windows-title-bar/24439689#24439689 – geowar