OSX/Swift:屏幕可用时调用功能

yes*_*joe 9 macos cocoa core-graphics nsworkspace swift

我希望我的OSX应用程序在用户的屏幕可用时调用一个函数,例如:他们的计算机从睡眠状态唤醒或者用户打开他们的屏幕.基本上每当用户从没有活动屏幕变为活动时,我希望我的功能被调用.

我不确定这样做的最佳方法是:

其中哪一个似乎是最好的方法,或者我应该完全做其他事情?某种示例Swift代码非常有用,因为实现其中任何一个的代码片段似乎很少.谢谢.

roc*_*cky 3

我能够在 OS X 10.10.5 上收到屏幕锁定和屏幕解锁的通知。抱歉,我还不知道 Swift,所以这是 Objective-C:

NSDistributedNotificationCenter *center = [NSDistributedNotificationCenter defaultCenter];
[center addObserver:self selector:@selector(screenIsLocked) name:@"com.apple.screenIsLocked" object:nil];
[center addObserver:self selector:@selector(screenIsUnlocked) name:@"com.apple.screenIsUnlocked" object:nil];

- (void)screenIsLocked {
    NSLog(@"screen is locked");
}

- (void)screenIsUnlocked {
    NSLog(@"screen is unlocked");
}
Run Code Online (Sandbox Code Playgroud)