如何检查NSWindow是否开放

Ric*_*ard 2 cocoa appkit nswindow

我有一个NSWindow可以关闭并重新打开(我已经打过电话[setReleasedWhenClosed: NO]).如何以编程方式检查它是打开还是关闭?

我已经阅读了文档和谷歌搜索,但看不到一个明智的方式来做到这一点.[isVisible]已弃用.[occlusionState]不是我追求的.我已经使用通知解决了这个问题,但我无法相信没有一些属性或方法NSWindow可以做到这一点

Ken*_*ses 10

-[NSWindow isVisible] 并没有真正弃用.

对于10.10 SDK,Apple经历并将一堆非正式属性转换为声明的属性.非正式属性是仅声明访问器的属性,可能只是一个getter方法.声明的属性使用@property.

结果,他们删除了以下内容:

- (BOOL) isVisible;
Run Code Online (Sandbox Code Playgroud)

并补充说:

@property (getter=isVisible, readonly) BOOL visible;
Run Code Online (Sandbox Code Playgroud)

请注意,两者仍然意味着存在-isVisible具有BOOL返回类型的getter .

他们用来根据标题更改生成文档的工具导致文档声称-isVisible已弃用,但这是错误的.

但请注意,-isVisible对于最小化或"打开"但在隐藏应用程序中的窗口,报告为false.