在目标c中最小化MAC OS X的窗口事件

时间:2016-07-18 10:15:31

标签: objective-c macos

当mac os x应用程序最小化停靠时,我无法获得任何事件。虽然当您的应用程序变为活动且处于非活动状态时会触发通知,但是没有用于最小化窗口的事件。

if(hasUserNotification)
{
    //Notification delivered code here....
}

如果条件只应在mac应用程序处于非活动状态或最小化状态时执行,否则在前台不应该显示通知。

1 个答案:

答案 0 :(得分:-1)

我想我可以在AppDelegate类中使用applicationDidChangeOcclusionState通知。每次将应用程序最小化到扩展坞并最大化时,都会调用此方法。

- (void)applicationDidChangeOcclusionState:(NSNotification *)notification
{
    if ([NSApp occlusionState] & NSApplicationOcclusionStateVisible) {
        // The app is visible; continue doing work
        NSLog(@"app is visible");
    } else {
        // The app is not visible; stop doing work }
        NSLog(@"app is not visible");
    }
}