2014-11-17 2 views
0

У меня есть NSWindow, который выходит в полный экран. Мой NSWindowController является наблюдателем уведомления NSWindowWillCloseNotification.Определите, когда NSWindow закрывается по сравнению с оставлением полного экрана

Я хотел бы сделать что-то особенное, когда окно закрыто (так как пользователь нажимает красную кнопку X в верхнем левом углу), но я также получаю уведомление NSWindowWillCloseNotification, когда пользователь выходит из полноэкранного режима, в котором Я не хочу, чтобы что-то случилось.

Есть ли способ определить внутри селектора, который я настроил для вызова, когда я наблюдаю уведомление NSWindowWillCloseNotification? В момент, когда вызывается мой селектор, NSWindow уже вышел из полноэкранного режима, поэтому я не могу проверить, полный ли он или нет. Также пользовательский словарь NSNotifications равен нулю.

Спасибо,

Will

+0

Вы не должны получать 'NSWindowWillCloseNotification', когда окно выходит на полный экран. Как вы это определили? Возможно, вы проложили провода с помощью уведомлений «NSWindowWillExitFullScreenNotification» или «NSWindowDidExitFullScreenNotification»? –

+1

Определенно, я получал это уведомление, но не для своего окна! Проверьте ответ, чтобы увидеть, что это «NSToolbarFullScreenWindow»! – Will

ответ

1

Оказывается, я получаю уведомление из окна, которое не было окна моих NSWindowController «S!

Распечатка уведомление, что я получал, мы можем видеть, что я получал NSWindowWillCloseNotification призыв к NSToolbarFullScreenWindow:

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

Я должен написал свой метод наблюдателя, как это, а не проходя nil для объект:

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