我有一个视图控制器,我希望在其中接收windowDidBecomeMain和windowDidResignMain事件。
在viewWillApear()中,我将窗口委托设置为self。
view.window?.delegate = self
我添加了一个符合NSWindowDelegate的视图控制器扩展,并在其中实现了两种方法:
extension CustomerListViewController: NSWindowDelegate
{
func windowDidBecomeMain(_ notification: Notification)
{
print("Customer list did become main")
}
func windowDidResignMain(_ notification: Notification)
{
print("Customer list did resign main")
}
}
这不是初始窗口。它通过带有Window controller show segue的菜单项打开。
首次通过菜单项打开窗口时,它不会收到windowDidBecomeMain。
当我点击另一个窗口时,它 接收windowDidResignMain。
如果我然后点击回到新打开的窗口,它会接收windowDidBecomeMain,并且将从那时开始。
我怀疑我需要在不同的地方设置我的窗口代理,但是如果 那么,不知道该怎么做。