我希望能够通过 Objective-C 检测 mac 是处于锁定状态还是睡眠状态。 2012年的这个问题使用
kCGSessionOnConsoleKey
键进入CGSessionCopyCurrentDictionary()
提供的字典提供了一半的答案。
CFDictionaryRef session = CGSessionCopyCurrentDictionary();
if (session != NULL) {
d->locked = ![[(id)session objectForKey:(NSString *)kCGSessionOnConsoleKey] boolValue]; // d's locked field name is not yet correct.
CFRelease(session);
}
使用
CGSSessionScreenIsLocked
键的明显下一步失败,因为它不是 dictionary 条目的一部分; TBH 目前还不清楚链接的答案是如何工作的,但我已经看到了主题的许多变化,所以我想它一定在某个时候有。
CGSSessionScreenIsLocked
是否已被弃用或者它存在于其他地方?有没有其他方法可以实现这一目标?