ixa*_*any 4 macos cocoa swift quartz
我想检测用户是否使用Swift.
基于此答案,我创建了以下代码:
import Cocoa
import Quartz
if let dict = Quartz.CGSessionCopyCurrentDictionary() as? [String : Any] {
let locked = dict["CGSSessionScreenIsLocked"]
print(locked as? String ?? "")
}
Run Code Online (Sandbox Code Playgroud)
...如果我明确运行代码,这似乎工作正常。
但是如何观察值以便在值更改时得到通知?
您可以观察分布式通知。它们没有记录。
let dnc = DistributedNotificationCenter.default()
lockObserver = dnc.addObserver(forName: .init("com.apple.screenIsLocked"),
object: nil, queue: .main) { _ in
NSLog("Screen Locked")
}
unlockObserver = dnc.addObserver(forName: .init("com.apple.screenIsUnlocked"),
object: nil, queue: .main) { _ in
NSLog("Screen Unlocked")
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
945 次 |
| 最近记录: |