【发布时间】:2011-02-17 18:55:10
【问题描述】:
我读过 Apple 的 Pasteboard Programming Guide,但它没有回答我的特定问题。
我正在尝试编写一个 Cocoa 应用程序(适用于 OS X,而不是 iOS),它将跟踪写入 general pasteboard 的所有内容(因此,每当任何应用程序复制和粘贴时,而不是拖-and-drops,它也使用 NSPasteboard)。我可以(几乎)通过不断地在后台线程上轮询通用粘贴板并检查changeCount来实现这一点。当然,这样做会让我觉得内心很肮脏。
我的问题是,有没有办法让粘贴板服务器在任何时候对通用粘贴板进行更改时通过某种回调通知我?我在 NSPasteboard 类参考中找不到任何内容,但我希望它潜伏在其他地方。
我可以想象实现此目的的另一种方法是,如果有一种方法可以将通用粘贴板实现替换为 NSPasteboard 的子类,我可以定义自己以发出回调。也许这样的事情是可能的?
如果公共的、App Store 合法的 API 可以做到这一点,我会非常喜欢,但如果需要使用私有 API,我也会接受。
谢谢!
【问题讨论】:
-
不是一个答案,但如果您在监视粘贴板,请注意以下事项:有一个非正式协议可以在粘贴板上标记瞬态和应用程序生成的数据:nspasteboard.org
标签: cocoa macos nspasteboard