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
War es hilfreich?

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?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top