objective-c - 如何收听屏幕截图

标签 objective-c cocoa macos

我是否可以听听 OSX 内置的屏幕捕获,这样我就可以自己处理文件而不是 osx 来处理?

最佳答案

有几个选项。

  1. 只需使用 Ctrl-Cmd-Shift-34 而不是 Cmd-Shift-34 。这不会将文件保存到桌面,而是将数据保存在剪贴板/粘贴板中。我不知道官方在哪里提到过这一点,但是here is one 。然后就可以通过NSPasteboard获取数据,见here .

  2. 您可以使用FSEvents每当在指定文件夹中创建文件时都会收到通知。然后,您可以在系统将屏幕截图文件保存到桌面后立即对其进行重命名。请注意,屏幕截图的文件名取决于您在系统偏好设置中选择的语言环境。因此,如果您想让您的程序在非英语机器上运行,请务必小心。

  3. 如果您只是以编程方式截取屏幕截图,则可以使用命令行工具screencapture,请参阅man page .

  4. 当然,您可以侵入系统并接管 Cmd-Shift-3,4 的处理,例如 Snapz Pro 所做的那样。如果您选择那样,您就知道自己在做什么。

关于objective-c - 如何收听屏幕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3159418/

相关文章:

cocoa - 应用程序的系统范围热键

objective-c - NSTextField 设置启用

macos - 无法匹配包含自定义 View 的 Yosemite NSMenuItem 的鲜艳背景

macos - 为什么我所有打开的 MPI 进程都是 Rank 0?

macos - 将连续色井数据传递到第二个 View Controller

ios - 通过 TraceGL 分析 Objective C 中的代码路径?

objective-c - Cocoa Xcode - 如何将变量传递给函数

objective-c - 如何使用 zlib 压缩 NSData?

ios - 'INSERT INTO' 突然返回错误 'PRIMARY KEY must be unique'

iphone - 使用Dealloc和ViewDidUnload释放变量的正确方法