屏幕

Actions Status Release version License: MIT Carthage compatible Version Platform SPM supported

观察 macOS 中的用户屏幕截图事件和图像。

用法

CocoaPods

pod 'Screeen'

Carthage

github "Clipy/Screeen"

示例

let observer = ScreenShotObserver()
observer.delegate = self
observer.start()
func screenShotObserver(_ observer: ScreenShotObserver, addedItem item: NSMetadataItem) {
    print("added item == \(item)")
}

func screenShotObserver(_ observer: ScreenShotObserver, updatedItem item: NSMetadataItem) {
    print("updated item == \(item)")
}

func screenShotObserver(_ observer: ScreenShotObserver, removedItem item: NSMetadataItem) {
    print("removed item == \(item)")
}

更改观察状态

observer.isEnabled = false // Stop observing
observer.isEnabled = true  // Restart observing

macOS 10.15 或更高版本的安全特性

自 mac10.15 Catalina 起,安全特性已得到增强,屏幕截图监控必须获得授权。 可以为每个目录指定监控目标,默认情况下指定桌面目录。

第一次调用 start() 时,将显示权限警报,允许后开始监控。

桌面目录监控(默认)

let observer = ScreenShotObserver()
observer.start()

桌面和图片目录监控

let desktopPath = NSSearchPathForDirectoriesInDomains(.desktopDirectory, .userDomainMask, true).first
let picturePath = NSSearchPathForDirectoriesInDomains(.picturesDirectory, .userDomainMask, true).first
let directoryPaths = [desktopPath, picturePath].compactMap { $0 }
let observer = ScreenShotObserver(searchDirectoryPaths: directoryPaths)
observer.start()

监控 macOS 10.14 或更早版本上的所有屏幕截图

let observer: ScreenShotObserver
if #available(macOS 10.15, *) {
    observer = ScreenShotObserver()
} else {
    observer = ScreenShotObserver(searchDirectoryPaths: [])
}
observer.start()

沙盒支持

为了在启用沙盒的应用程序中监控屏幕截图,用户必须手动选择要监控的目录。
请参见此处 了解有关如何实现它的更多详细信息。