我已经阅读了 Apple 的粘贴板编程指南,但它没有回答我的特定问题。
我正在尝试编写一个 Cocoa 应用程序(用于 OS X,而不是 iOS),它将跟踪写入通用粘贴板的所有内容(因此,每当任何应用程序复制和粘贴时,而不是拖放,它也使用了 NSPasteboard)。我可以(几乎)通过不断地在后台线程上轮询通用粘贴板并检查changeCount来实现这一点。当然,这样做会让我觉得内心很肮脏。
我的问题是,有没有办法让粘贴板服务器在任何时候对通用粘贴板进行更改时通过某种回调通知我?我在 NSPasteboard 类参考中找不到任何东西,但我希望它潜伏在其他地方。
我可以想象的另一种方法是,如果有一种方法可以将通用粘贴板实现换成 NSPasteboard 的子类,我可以定义自己来发出回调。也许这样的事情是可能的?
如果公共的、App Store 合法的 API 可以做到这一点,我会非常喜欢,但如果需要使用私有 API,我也会接受。
谢谢!