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
。