Objective c 今天关闭widget center时调用什么操作?

Objective c 今天关闭widget center时调用什么操作?,objective-c,macos,cocoa,today-extension,osx-today-widget,Objective C,Macos,Cocoa,Today Extension,Osx Today Widget,我需要找到对通知中心关闭/隐藏的响应方式。原因是我在该小部件中有一个弹出菜单,如果打开它然后关闭整个通知中心,弹出菜单将保留在屏幕上 我已经尝试过实现NSWindowDelegate,但是没有这样的事件定义今天关闭widget Center。我发现的最接近的东西是-WindowDidMinimize:和 -窗口将关闭:。但当侧栏关闭时,它们不会被调用。最后,我在NSWindowDelegate协议中找到了所需的方法 第一步是添加self(在这种情况下它是viewController)作为所需方法

我需要找到对通知中心关闭/隐藏的响应方式。原因是我在该小部件中有一个弹出菜单,如果打开它然后关闭整个通知中心,弹出菜单将保留在屏幕上

我已经尝试过实现
NSWindowDelegate
,但是没有这样的事件定义今天关闭widget Center。我发现的最接近的东西是
-WindowDidMinimize:

-窗口将关闭:
。但当侧栏关闭时,它们不会被调用。

最后,我在
NSWindowDelegate
协议中找到了所需的方法

第一步是添加self(在这种情况下它是
viewController
)作为所需方法的观察者:
windowDidResignKey:

-(void)viewWillAppear {
  //set this view controller delegate for selector windowDidResignKey
  [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(windowDidResignKey:) name:NSWindowDidResignKeyNotification object:self.view.window];
}
二是实施这个办法:

- (void)windowDidResignKey:(NSNotification *)notification {
  //If window did resign key (close today center) - close menus
  if(_sourceLanguageMenu)
    [ _sourceLanguageMenu cancelTracking];
  if(_targetLanguageMenu)
    [ _targetLanguageMenu cancelTracking];
}