#ifndef SCREENLOCKDETECTOR_MACOS_H #define SCREENLOCKDETECTOR_MACOS_H #include "screenlockdetector_base.h" #ifdef Q_OS_MAC /** * @brief macOS 屏幕锁定检测器类 * * 通过监听 macOS 的分布式通知中心来检测屏幕锁定/解锁状态 * 使用 NSDistributedNotificationCenter 监听系统通知 */ class ScreenLockDetectorMacOS : public ScreenLockDetectorBase { Q_OBJECT public: explicit ScreenLockDetectorMacOS(QObject *parent = nullptr); ~ScreenLockDetectorMacOS() override; /** * @brief 初始化 macOS 平台的锁屏检测 * @return true 如果初始化成功,否则返回 false */ bool initialize() override; public: /** * @brief 处理屏幕锁定通知的回调 */ void handleScreenLocked(); /** * @brief 处理屏幕解锁通知的回调 */ void handleScreenUnlocked(); /** * @brief 处理屏幕保护程序启动通知的回调 */ void handleScreenSaverStarted(); /** * @brief 处理屏幕保护程序停止通知的回调 */ void handleScreenSaverStopped(); private: /** * @brief 注册通知观察者 * @return true 如果注册成功 */ bool registerNotificationObservers(); /** * @brief 注销通知观察者 */ void unregisterNotificationObservers(); private: void *m_observerToken; // Objective-C 观察者令牌(不透明指针) bool m_initialized; // 是否已初始化 }; #endif // Q_OS_MAC #endif // SCREENLOCKDETECTOR_MACOS_H