确定NSWindow何时关闭而不是全屏显示

时间:2014-11-17 21:52:27

标签: objective-c macos nswindow nsnotifications

我有NSWindow进入全屏。我的NSWindowControllerNSWindowWillCloseNotification通知的观察者。

我想在窗口关闭时做一些特别的事情(如用户按下左上角的红色X按钮)但当用户离开全屏模式时我也会收到NSWindowWillCloseNotification通知,在这种情况下,我不希望发生任何事情。

当我观察NSWindowWillCloseNotification通知时,有没有办法确定我设置为调用的选择器内部?在调用我的选择器时,NSWindow已经全屏显示,因此我无法检查它是否为全屏。此外,NSNotifications的UserInfo字典为零。

谢谢,

威尔

1 个答案:

答案 0 :(得分:1)

原来我从一个不是我NSWindowController窗口的窗口收到通知!

打印出我收到的通知,我们可以看到NSWindowWillCloseNotificationNSToolbarFullScreenWindow来电:

NSConcreteNotification 0x6080002578b0 {name = NSWindowWillCloseNotification; object = <NSToolbarFullScreenWindow: 0x100d57f50>}

我应该像这样编写我的观察者方法,而不是将nil传递给object:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleWindowWillClose:) name:NSWindowWillCloseNotification object:self.window];