2009-12-23 92 views
5

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

回答

8

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

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

3

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

+0

问题是关于当**窗口失去焦点时关闭窗口,但是。 **应用程序**失去焦点时隐藏'NSPanel'。 – Jay 2012-11-24 09:32:18