ein NSWindow Inhalts Vergrauung aus
-
11-09-2019 - |
Frage
Ich habe eine NSWindow
mit 2 NSViews
(ein NSSplitView
und einem benutzerdefinierten NSView
). Zugriff auf die Daten, diese Ansichten füllen kann einige Zeit dauern. Während dieser Zeit, würde Ich mag den Inhalt dieser Ansichten grau aus.
Mein erster Ansatz war ein schwarzes dritten NSView
zu haben, die andere 2 bedeckt und erreicht Wirkung die Vergrauung aus durch seinen Alpha-Wert zu verändern. Allerdings habe ich da gelernt, mit Geschwister Ansichten, die eine Hierarchie mit nicht definiert ist.
Was ist der beste Ansatz hier?
- Cache die
NSBitmapImageRep
der 2 Ansichten, dann ersetzen Sie sie durch die 3. Ansicht, die im Cache gespeicherte Bild unter Verwendung (en) als Hintergrund - Stellen Sie den Alpha-Wert für jede Ansicht separat (noch nicht ganz sicher, wie den schwarzen Hintergrund für die Vergrauung Effekt erhalten)
- Etwas, das ich nicht berücksichtigt
Lösung
Ich habe gerne ein Kind Fenster verwenden. Legen Sie seine Inhalte im Hinblick auf eine schlichte schwarze Ansicht (hoffentlich mit Status- und Fortschrittsinformationen in Subviews) und seine Alpha-Wert auf den gewünschten Fade-out, und fügen Sie es als Kind Fenster des Fensters, dessen Inhalt Sie wollen auszublenden.
Andere Tipps
würde ich die Ansichten lehrt, wie man sich in einem deaktivierten Zustand zu ziehen, aber es gibt auch andere Vorschläge hier:
Wie kann ich alles in einem einzigen angezeigt verdunkeln NSView?