【问题标题】:OS X Notify When Apps Open, Quit, and Change Focus当应用程序打开、退出和更改焦点时 OS X 通知
【发布时间】:2013-07-01 18:03:40
【问题描述】:

当其他应用程序打开或退出时,或者当不同的窗口(监听应用程序或其他的)被带到最前面时,是否有任何方法可以通知可可应用程序?

【问题讨论】:

    标签: macos cocoa window


    【解决方案1】:

    您可以将观察者添加到共享工作区通知中心:

    [[[NSWorkspace sharedWorkspace] notificationCenter] addObserverForName:NSWorkspaceDidActivateApplicationNotification object:nil queue:[NSOperationQueue currentQueue] usingBlock:^(NSNotification *note) {
        NSRunningApplication *frontmostApplication = [[note userInfo] objectForKey:NSWorkspaceApplicationKey];
    }];
    
    // from NSWorkspace.h
    APPKIT_EXTERN NSString * NSWorkspaceWillLaunchApplicationNotification;  //  see above
    APPKIT_EXTERN NSString * NSWorkspaceDidLaunchApplicationNotification;   //  see above
    APPKIT_EXTERN NSString * NSWorkspaceDidTerminateApplicationNotification;    //  see above
    APPKIT_EXTERN NSString * const NSWorkspaceDidHideApplicationNotification NS_AVAILABLE_MAC(10_6);
    APPKIT_EXTERN NSString * const NSWorkspaceDidUnhideApplicationNotification NS_AVAILABLE_MAC(10_6);
    APPKIT_EXTERN NSString * const NSWorkspaceDidActivateApplicationNotification NS_AVAILABLE_MAC(10_6);
    APPKIT_EXTERN NSString * const NSWorkspaceDidDeactivateApplicationNotification NS_AVAILABLE_MAC(10_6);
    

    【讨论】:

    • 哦,记得在释放时移除观察者!
    猜你喜欢
    • 2014-10-29
    • 1970-01-01
    • 1970-01-01
    • 2012-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多