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];
}