如何检查NSWindow是否可见

Jus*_*Sid 9 macos cocoa objective-c nswindow

有没有办法检查a NSWindow是否可见?一旦我的应用程序的第一个窗口变为可见,我想显示一个工作表控制器(10.7上的动画结束,用户可以看到窗口!).如果我只是显示工作表windowDidLoad,它会导致一个看起来很愚蠢的动画(工作表翻出,窗口从后面弹出).我知道这NSWindowDelegate提供了两个方法,当窗口成为关键窗口或主窗口时调用,但是,这并不意味着窗口当时已经完全可见.这在Lion上更加引人注目,其中Windows倾向于弹出这个愚蠢的动画.

Pey*_*loW 27

我会选择这样的东西:

if ([myWindow isVisible]) {
    // Do stuff
}
Run Code Online (Sandbox Code Playgroud)

或者在发生更改时通知此关键路径的观察者.

  • @JustSid - 我知道这种感觉,对问题的研究很少有帮助.第二天休息和新鲜的外观经常做:). (3认同)