如何识别用户何时关闭窗口?
我想在窗口关闭之前做点什么。
我在视图控制器中使用它
//initWithNibName
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(windowWillClose:) name:NSWindowWillCloseNotification object:self.view.window];
- (void)windowWillClose:(NSNotification *)notification
{
NSWindow *win = [notification object];
//...
}
您可以声明您的自定义类以符合
NSWindowDelegate
协议。
将自定义类的实例设置为窗口的委托
然后使用其中一种方法(可能是 windowWillClose: 之一)在窗口关闭之前执行某些操作。
- (BOOL)windowShouldClose:(id)sender
- (void)windowWillClose:(NSNotification *)notification
您可以在每个 NSViewController 中执行以下操作 返回 true 将关闭窗口,返回 false 将不关闭它。
class ViewController: NSViewController, NSWindowDelegate {
var firstWindow:NSWindow?
override func viewDidLoad() {
super.viewDidLoad()
firstWindow = NSApplication.shared.windows.first
firstWindow?.delegate = self
}
func windowShouldClose(_ sender: NSWindow) -> Bool {
// Do something appropriate here
print("Window Should Close")
return false
}
}