2017-10-06 1 views
1

사용자가 사용하는 맨 앞 윈도우 응용 프로그램을 추적하는 것을 목표로하는 Mac OS 응용 프로그램에서 작업하고 있습니다. 코드는 다음과 같다 :적십자를 클릭하여 응용 프로그램을 닫고 다시 열면 NSWorkspaceDidActivateApplicationNotification이 실패합니다.

@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 응용 프로그램은 좌측 상단에 십자 버튼을 클릭 한 후 재개에 의해 폐쇄 될 때 통지 못한다. 도크에서 응용 프로그램을 종료했다가 다시 열면 NSWorkspaceDidActivateApplicationNotification이 정상적으로 작동합니다. 이전의 경우 작동하지 않는 이유는 무엇입니까? 미리 감사드립니다.

답변

0

나는 MacOs 앱을 개발 한 경험이 없지만 왼쪽 상단의 십자가를 클릭해도 앱이 종료되지 않습니다. 해당 창이 닫힙니다. 이를 위해 다른 방법을 사용해야 할 수도 있습니다.

+0

예, 알겠습니다. 크로스 버튼으로 앱을 닫으면 앱이 비활성화되지만 종료되지 않습니다. 이 경우 NSWorkspaceDidDeactivateApplicationNotification이 작동합니다. 하지만 닫은 후 응용 프로그램을 다시 열 때 'NSWorkspaceDidActivateApplicationNotification' 알림이 실패합니다. 해결 방법이 있습니까? – Priyanka

+0

죄송합니다. 저는 MacO 개발에 대해 아무것도 모릅니다. 그것은 내가 MacOs를 사용하여 알아 차린 것입니다. – pramjeet

관련 문제