【问题标题】:How to check if a NSWindow is visible如何检查 NSWindow 是否可见
【发布时间】:2011-08-16 16:59:10
【问题描述】:

有没有办法检查NSWindow 是否可见?一旦我的应用程序的第一个窗口可见(10.7 上的动画结束并且用户可以看到窗口!),我想显示一个工作表控制器。如果我只是在windowDidLoad 中显示工作表,它会产生一个看起来很愚蠢的动画(工作表展开,窗口从后面弹出)。我知道NSWindowDelegate 提供了两种方法,当窗口成为关键窗口或主窗口时调用它们,但是,这并不一定意味着该窗口当时已经完全可见。这在 Lion 上更加明显,因为这个愚蠢的动画往往会弹出窗口。

【问题讨论】:

  • 我以为当窗口在屏幕上完成动画时我读到了一些通知,但现在我找不到它......

标签: objective-c cocoa macos nswindow


【解决方案1】:

我会选择这样的:

if ([myWindow isVisible]) {
    // Do stuff
}

或者当改变发生时通知这个关键路径的观察者。

【讨论】:

  • 我想是时候睡一觉了,我在 NSWindow 文档中搜索了大约 30 分钟来寻找这样的功能,并且 100% 确定这样的东西不存在。非常感谢!
  • @JustSid - 我知道这种感觉,解决问题很少有帮助。第二天经常休息和焕然一新:)。
【解决方案2】:

对于它的价值,您还可以绑定到 window.visible 属性。 Xcode 4 可能会对您大喊大叫,说它不是可绑定的属性,但它会起作用。

如果您尝试根据窗口是否可见以及其他方法来启用/禁用显示/隐藏 NSStatusItem,这会很有用。

即在界面生成器中:

  • 绑定到:应用委托
  • 模型键路径:self.window.visible

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-12
    • 1970-01-01
    • 2017-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-08
    • 2012-11-06
    • 1970-01-01
    相关资源
    最近更新 更多