Question: I have an `NSWindow` which can be closed and reopened (I've called `[setReleasedWhenClosed: NO]`). How do I check if it is open or closed programmatically?

I've read the doc and Googled but can't see a sane way to do this. `[isVisible]` is deprecated. `[occlusionState]` isn't what I'm after. I've worked around it using notifications, but I can't believe there isn't some property or method on `NSWindow` to do this

Answer: 
`-[NSWindow isVisible]` is not really deprecated.

For the 10.10 SDK, Apple went through and converted a bunch of informal properties to declared properties. An informal property is one for which there are just accessors declared, possibly just a getter method. A declared property uses `@property`.

As a consequence, they removed something like:

```
- (BOOL) isVisible;

```

and added:

```
@property (getter=isVisible, readonly) BOOL visible;

```

Note that both still imply the existence of an `-isVisible` getter with `BOOL` return type.

The tools they use to generate the documentation from the changes to their headers caused the documentation to claim that `-isVisible` is deprecated, but that's just wrong.

Note, though, that `-isVisible` reports false for a window which is minimized or which is "open" but in a hidden app.
You make make of use of screen property of NSWindow. If the window in offscreen it will return nil. Please check <https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSWindow_Class/index.html#//apple_ref/occ/instm/NSWindow/screen>