How to check if a NSWindow is visible

JustSid picture JustSid · Aug 16, 2011 · Viewed 10.8k times · Source

Is there a way to check if a NSWindow is visible or not? I want to display a sheet controller once the first window of my app became visible (the animation on 10.7 ended and the user can see the window!). If I just show the sheet in windowDidLoad, it results in a stupid looking animation (sheet rolling out, window popping out from the back). I know that NSWindowDelegate provides two methods which are invoked when a window either became the key window or the main window, however, this doesn't have to mean that the window is already fully visible at the time. This is even more noticeable on Lion where windows tend to pop up with this stupid animation.

Answer

PeyloW picture PeyloW · Aug 16, 2011

I would go for something like this:

if ([myWindow isVisible]) {
    // Do stuff
}

Or an an observer for this key path to be notified when the change occurs.