2015-03-25 65 views
1

我有一个NSWindow可以关闭并重新打开(我叫[setReleasedWhenClosed: NO])。如何检查它是否以编程方式打开或关闭?如何检查是否一个NSWindow是开放

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

回答

6

-[NSWindow isVisible]是不是真的过时了。

为10.10 SDK,苹果经历和转换一堆非正式性质声明的属性的。一个非正式的属性就是一个只声明访问者的属性,可能只是一个getter方法。声明的财产使用@property

因此,他们取消这样的:

- (BOOL) isVisible; 

并补充说:

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

注意,这两个仍意味着是-isVisible吸气的存在与BOOL返回类型。

他们用来生成文档的工具从其标头的更改中导致文档声称-isVisible已被弃用,但这只是错误的。

注意,虽然,-isVisible报告虚假的窗口,它最小化或者是“开放”,但在一个隐藏的应用程序。

+0

我不认为这对NSWindow的文件中。 – dented42 2015-03-25 22:26:55

+0

你不明白? “可见”属性?是的我知道。我告诉你的是文档是越野车。查看'NSWindow'类声明(例如,在您的代码中按住Command键单击'NSWindow')。或者只是编写使用'visible'属性和/或'-isVisible'方法的代码,并观察编译器不会发出任何弃用警告(或任何其他警告)。 – 2015-03-25 22:31:02

+0

感谢彻底(虽然令人失望!)的描述。我没有接受这个答案,因为Sheen的建议更接近我想要的 - 但我希望在这种情况下我可以选择两个答案! – Richard 2015-03-26 16:33:49

相关问题