如何可靠地获取windowDidBecomeMain和windowDidResignMain事件?

时间:2017-07-25 19:48:05

标签: cocoa swift3 xcode8

我有一个视图控制器,我希望在其中接收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,并且将从那时开始。

我怀疑我需要在不同的地方设置我的窗口代理,但是如果 那么,不知道该怎么做。

0 个答案:

没有答案