gpt4 book ai didi

Swift:如何在 macOS 中观察屏幕是否被锁定

转载 作者:行者123 更新时间:2023-11-28 11:38:41 25 4
gpt4 key购买 nike

我想检测用户是否使用 Swift 锁定了他的屏幕(在 macOS 中)。

基于 on this answer我创建了以下代码:

import Cocoa
import Quartz

if let dict = Quartz.CGSessionCopyCurrentDictionary() as? [String : Any] {
let locked = dict["CGSSessionScreenIsLocked"]
print(locked as? String ?? "")
}

...如果我明确运行代码,它似乎工作正常。

但是如何观察值以便在值更改时收到通知?

最佳答案

您可以观察分布式通知。它们没有记录。

let dnc = DistributedNotificationCenter.default()

let lockObserver = dnc.addObserver(forName: .init("com.apple.screenIsLocked"),
object: nil, queue: .main) { _ in
NSLog("Screen Locked")
}

let unlockObserver = dnc.addObserver(forName: .init("com.apple.screenIsUnlocked"),
object: nil, queue: .main) { _ in
NSLog("Screen Unlocked")
}

关于Swift:如何在 macOS 中观察屏幕是否被锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54346761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com