通过单击红叉并重新打开应用程序关闭时,NSWorkspaceDidActivateApplicationNotification失败

时间:2017-10-06 10:53:27

标签: objective-c macos nsworkspace

我正在开发一款Mac OS应用程序,旨在跟踪用户使用的最前面的窗口应用程序。代码是这样的:

@interface MDAppController : NSObject <NSApplicationDelegate> {
NSApplication    *currentApp;
}
@property (retain) NSApplication *currentApp;
@end

@implementation MDAppController
@synthesize currentApp;

- (id)init {
    if ((self = [super init])) {
    [[NSWorkspace sharedWorkspace] notificationCenter] addObserver:self
        selector:@selector(activeAppDidChange:)
        name:NSWorkspaceDidActivateApplicationNotification object:nil];
    [[[NSWorkspace sharedWorkspace] notificationCenter] addObserver:self
        selector:@selector(activeAppDidTerminate:)
        name:NSWorkspaceDidTerminateApplicationNotification object:nil];
}
return self;
}

单击左上角的十字按钮然后重新打开,NSWorkspaceDidActivateApplicationNotification无法通知应用程序何时关闭。 如果我从Dock退出应用程序并重新打开它,那么NSWorkspaceDidActivateApplicationNotification工作正常。 有什么建议为什么它在以前的情况下不起作用?提前谢谢。

1 个答案:

答案 0 :(得分:0)

我没有任何开发MacO应用程序的经验,但点击左上方交叉时,应用程序不会退出。只有那个窗口关闭。您可能需要使用其他方法。