【问题标题】:Programmatically closing an NSWindow when it loses focus失去焦点时以编程方式关闭 NSWindow
【发布时间】:2009-12-23 00:31:28
【问题描述】:

我正在制作一个图像选择器,当弹出拾取器时,将显示一个可选按钮的n个网格。这个按钮网格将包含在 NSWindow 中,但我希望在用户单击屏幕时自动关闭窗口。是否可以设置一个标志,以便当窗口失去焦点时它会自动关闭?

【问题讨论】:

    标签: cocoa macos nswindow


    【解决方案1】:

    您可能对以下两个通知感兴趣:NSWindowDidResignKeyNotification 和 NSWindowDidResignMainNotification。您只需在 awakeFromNib(或 windowDidLoad,如果您有自定义控制器)中注册您感兴趣的窗口,然后在收到通知时根据需要关闭或隐藏窗口。

    我不会深入探讨从 UI 的角度来看这是否是一个好主意。但是,为您描述的功能设置一个覆盖视图或面板可能是一个更好的主意。

    【讨论】:

      【解决方案2】:

      您可以查看NSPanel。它是一个 NSWindow 子类,当应用程序在后台运行时,它会隐藏自己,并且这种行为听起来与您正在寻找的非常相似。

      【讨论】:

      • 问题是当 window 失去焦点时关闭窗口。 NSPanel 在 app 失去焦点时隐藏。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多