Using swift to detect osx system events: Sleep / Wakeup / Lock/unlock / Screensaver / Display change

https://medium.com/@clyapp/using-swift-to-detect-osx-system-events-sleep-wakeup-lock-unlock-screensaver-display-change-529cae9a3e23

// Display connected / disconnected
NotificationCenter.default.addObserver(self, selector: #selector(displayConfigurationChanged), name: NSApplication.didChangeScreenParametersNotification, object: nil)
        
// System sleep / wakeup
let center = NSWorkspace.shared.notificationCenter
        
center.addObserver(self,
                   selector: #selector(systemDidWake),
                   name: NSWorkspace.didWakeNotification,
                   object: nil)
        
center.addObserver(self,
                   selector: #selector(systemWillSleep),
                   name: NSWorkspace.willSleepNotification,
                   object: nil)
        

// Screensaver starts        
DistributedNotificationCenter.default().addObserver(self, selector: #selector(screenIsLocked(_:)), name: Notification.Name("com.apple.screenIsLocked"), object: nil)
// Screensaver ends
DistributedNotificationCenter.default().addObserver(self, selector: #selector(screenIsUnlocked), name: Notification.Name("com.apple.screenIsUnlocked"), object: nil)

@objc private func displayConfigurationChanged() {
    // Handle display configuration change
    print("Display configuration changed")
}

@objc private func systemDidWake() {
    // Handle system wakeup
    print("System woke up")
}

@objc private func systemWillSleep() {
    // Handle system sleep
    print("System will sleep")
}

@objc private func screenIsLocked() {
    // Handle screen locking (screensaver starts)
    print("Screen is locked")
}

@objc private func screenIsUnlocked() {
    // Handle screen locking (screensaver starts)
    print("Screen is unlocked")
}

remove

NotificationCenter.default.removeObserver(self)
NSWorkspace.shared.notificationCenter.removeObserver(self)
DistributedNotificationCenter.default().removeObserver(self)

posted on 2025-08-08 20:52  明天有风吹  阅读(10)  评论(0)    收藏  举报

导航

+V atob('d2h5X251bGw=')

请备注:from博客园