Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Graying out an NSWindow's content

I have an NSWindow with 2 NSViews (an NSSplitView and a custom NSView). Accessing the data to populate these views can take some time. During this period, I'd like to gray out the content of these views.

My first approach was to have a black third NSView that covered the other 2 and achieve the graying out effect by changing its alpha value. However I've since learned having a hierarchy with sibling views is undefined.

What is the best approach here?

  • Cache the NSBitmapImageRep of the 2 views, then replace them with the 3rd view, using the cached image(s) as background
  • Set the alpha value for each view separately (still not quite sure how to get the black background for the graying effect)
  • Something I haven't considered
like image 616
nall Avatar asked Dec 19 '25 08:12

nall


1 Answers

I'd use a child window. Set its content view to a plain black view (hopefully with status and progress information in subviews), and its alpha value to the desired fade-out, and add it as a child window of the window whose content you want to fade out.

like image 51
Peter Hosey Avatar answered Dec 23 '25 06:12

Peter Hosey



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!