有没有办法检查一个 NSWindow
是否可见?我想在我的应用程序的第一个窗口可见后显示一个 sheet 控制器(10.7 上的动画已经结束,用户可以看到窗口!)。如果我只是在 windowDidLoad
中显示 sheet,那么将会导致一种愚蠢的外观动画(sheet 滚出,窗口从后面弹出)。我知道 NSWindowDelegate
提供了两种方法,它们在窗口成为键窗口或主窗口时被调用,但这并不意味着窗口在此时已经完全可见。在 Lion 上尤其明显,窗口往往以这种愚蠢的动画弹出。
有没有办法检查一个 NSWindow
是否可见?我想在我的应用程序的第一个窗口可见后显示一个 sheet 控制器(10.7 上的动画已经结束,用户可以看到窗口!)。如果我只是在 windowDidLoad
中显示 sheet,那么将会导致一种愚蠢的外观动画(sheet 滚出,窗口从后面弹出)。我知道 NSWindowDelegate
提供了两种方法,它们在窗口成为键窗口或主窗口时被调用,但这并不意味着窗口在此时已经完全可见。在 Lion 上尤其明显,窗口往往以这种愚蠢的动画弹出。
我会选择类似这样的东西:
if ([myWindow isVisible]) {
// Do stuff
}
或者为这个键路径添加一个观察者,以便在发生更改时通知。
说句实话,你也可以绑定到window.visible属性上。 Xcode 4可能会警告您,说它不是可绑定属性,但它仍然有效。
如果您试图基于窗口是否可见来启用/禁用显示/隐藏NSStatusItem,则此功能可能会很有用,以及其他方法。
例如,在Interface Builder中: