API to detect active session in Mac OS X with fast user switch

后端 未结 3 1012
生来不讨喜
生来不讨喜 2021-01-18 03:07

On Mac OS X Snow Leopard with fast user switching enabled, is there an API to detect whether or not my application is running in the active user session? I.e. the session cu

3条回答
  •  后悔当初
    2021-01-18 03:31

    This worked for me (10.14 / Swift 4)

            //Fast user switch out
        NSWorkspace.shared.notificationCenter.addObserver(
            self,
            selector: #selector(becameInactive),
            name: NSWorkspace.sessionDidResignActiveNotification,
            object: nil
        )
    
        //Fast user switch bak in
        NSWorkspace.shared.notificationCenter.addObserver(
            self,
            selector: #selector(becameActive),
            name: NSWorkspace.sessionDidBecomeActiveNotification,
            object: nil
        )
    
        // Switching workspace (spaces)
        NSWorkspace.shared.notificationCenter.addObserver(
            self,
            selector: #selector(workspaceSwitched),
            name: NSWorkspace.activeSpaceDidChangeNotification,
            object: nil
        )
    

提交回复
热议问题