我希望我的OSX应用程序在用户的屏幕可用时调用一个函数,例如:他们的计算机从睡眠中醒来,或者用户打开屏幕。基本上,每当用户从没有屏幕激活到有一个活动时,我希望调用我的函数。
我不确定最好的方法是:
这其中哪一种似乎是最好的方法,还是我应该完全做其他的事情?某种示例性的Swift代码非常有用,因为实现这些代码的代码片段似乎很少。谢谢。
发布于 2016-01-07 17:29:13
我能够在OSX10.10.5上接收到屏幕锁定和屏幕解锁的通知。对不起,我还不认识斯威夫特,所以我的目标是-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");
}
发布于 2016-02-29 01:03:35
首先,你必须测试,你是否能用不同的技术得到所有情况的解决方案。有许多打开显示器的情况(系统重新启动,从睡眠中醒来,连接/取消屏幕,…)我不确定,它们是否都是由所有的技术触发的。
但是,作为一般规则:您想知道什么时候启动了屏幕。因此,请使用通知通知,通知屏幕已被激活。我是NSWorkspaceScreensDidWakeNotification
。只要它起作用,我就会一直使用最接近我想要的技术。
https://stackoverflow.com/questions/34598611
复制相似问题