观察 macOS 中的用户屏幕截图事件和图像。
pod 'Screeen'
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
自 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()
let observer: ScreenShotObserver
if #available(macOS 10.15, *) {
observer = ScreenShotObserver()
} else {
observer = ScreenShotObserver(searchDirectoryPaths: [])
}
observer.start()
为了在启用沙盒的应用程序中监控屏幕截图,用户必须手动选择要监控的目录。
请参见此处 了解有关如何实现它的更多详细信息。