Cocoa 如何检查NSC窗口是否打开

Cocoa 如何检查NSC窗口是否打开,cocoa,nswindow,appkit,Cocoa,Nswindow,Appkit,我有一个可以关闭和重新打开的NSWindow(我调用了[setReleasedWhenClosed:NO])。如何以编程方式检查它是打开的还是关闭的 我读过医生的书,在谷歌上搜索过,但找不到一个明智的方法[isVisible]已弃用[oclusionState]不是我想要的。我已经使用通知解决了这个问题,但我不敢相信在NSWindow上没有任何属性或方法可以做到这一点您可以利用NSWindow的screen属性。如果窗口在屏幕外,它将返回零。请检查-[NSWindow isVisible]是否真

我有一个可以关闭和重新打开的
NSWindow
(我调用了
[setReleasedWhenClosed:NO]
)。如何以编程方式检查它是打开的还是关闭的


我读过医生的书,在谷歌上搜索过,但找不到一个明智的方法<代码>[isVisible]已弃用<代码>[oclusionState]不是我想要的。我已经使用通知解决了这个问题,但我不敢相信在
NSWindow
上没有任何属性或方法可以做到这一点

您可以利用NSWindow的screen属性。如果窗口在屏幕外,它将返回零。请检查
-[NSWindow isVisible]
是否真的不推荐使用

对于10.10 SDK,苹果公司将一系列非正式属性转换为声明属性。非正式属性是仅声明了访问器的属性,可能只是一个getter方法。声明的属性使用
@property

因此,他们删除了如下内容:

- (BOOL) isVisible;
并补充说:

@property (getter=isVisible, readonly) BOOL visible;
请注意,这两种方法仍然意味着存在一个带有
BOOL
返回类型的
-isVisible
getter

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


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

我在NSWindow的文档中没有看到这一点。您没有看到什么?
可见
属性?是的,我知道。我要告诉你的是,文档是有缺陷的。查看
NSWindow
类声明(例如,命令单击代码中的
NSWindow
)。或者只需编写使用
visible
属性和/或
-isVisible
方法的代码,并注意编译器不会发出任何弃用警告(或任何其他警告)。感谢您的详细(尽管令人失望!;)描述。我没有接受这个答案,因为辛的建议更接近我想要的——但我希望在这种情况下我能选择两个答案!测试此项但未成功,似乎只要我实例化windows控制器,
屏幕
属性就永远不会是
nil