22

How can I handle an event where I click on the red close button of a NSWindowController?

Reason for asking is that I have a video playing in a new NSWindowController window and when user clicks on the red close button, the audio continues playing, so I want to use the event to close the video.

Jonathan Leffler
  • 730,956
  • 141
  • 904
  • 1,278
Jason
  • 1,059
  • 1
  • 13
  • 32

2 Answers2

52

Make your NSWindowController subclass conform to the NSWindowDelegate protocol and be the delegate of the corresponding window. Having done that, implement:

- (void)windowWillClose:(NSNotification *)notification {
    // whichever operations are needed when the
    // window is about to be closed
}

in your NSWindowController subclass.

1

In my case, I need to observe the event, see https://stackoverflow.com/a/44721893/1418457

NotificationCenter.default.addObserver(self, selector: #selector(windowWillClose(_:)), name: Notification.Name.NSWindowWillClose, object: nil)
onmyway133
  • 45,645
  • 31
  • 257
  • 263