我有NSWindow
进入全屏。我的NSWindowController
是NSWindowWillCloseNotification
通知的观察者。
我想在窗口关闭时做一些特别的事情(如用户按下左上角的红色X按钮)但当用户离开全屏模式时我也会收到NSWindowWillCloseNotification
通知,在这种情况下,我不希望发生任何事情。
当我观察NSWindowWillCloseNotification
通知时,有没有办法确定我设置为调用的选择器内部?在调用我的选择器时,NSWindow
已经全屏显示,因此我无法检查它是否为全屏。此外,NSNotifications
的UserInfo字典为零。
谢谢,
威尔
答案 0 :(得分:1)
原来我从一个不是我NSWindowController
窗口的窗口收到通知!
打印出我收到的通知,我们可以看到NSWindowWillCloseNotification
有NSToolbarFullScreenWindow
来电:
NSConcreteNotification 0x6080002578b0 {name = NSWindowWillCloseNotification; object = <NSToolbarFullScreenWindow: 0x100d57f50>}
我应该像这样编写我的观察者方法,而不是将nil
传递给object:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handleWindowWillClose:)
name:NSWindowWillCloseNotification
object:self.window];