Screeen
观察 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()
沙盒支持
为了监控已启用沙盒的应用程序中的屏幕截图,用户必须手动选择要监控的目录。
更多信息请参阅此处。