gpt4 book ai didi

cocoa - 每当写入 NSPasteboard 时我都可以收到回调吗?

转载 作者:行者123 更新时间:2023-12-03 16:00:37 26 4
gpt4 key购买 nike

我已阅读 Apple 的 Pasteboard Programming Guide ,但它没有回答我的特定问题。

我正在尝试编写一个 Cocoa 应用程序(适用于 OS X,而不是 iOS),它将跟踪写入 general pasteboard 的所有内容。 (因此,每当任何应用程序复制和粘贴时,但不进行拖放操作时,拖放操作也会使用 NSPasteboard)。我可以(几乎)通过不断轮询后台线程上的通用粘贴板并检查 changeCount 来完成此任务。 。当然,这样做会让我觉得内心很肮脏。

我的问题是,有没有办法让粘贴板服务器在对通用粘贴板进行更改时通过某种回调通知我?我在 NSPasteboard 类引用中找不到任何内容,但我希望它潜伏在其他地方。

我可以想象完成此任务的另一种方法是,是否有一种方法可以用 NSPasteboard 的子类替换一般的粘贴板实现,我可以自己定义该子类来发出回调。也许这样的事情是可能的?

如果这可以通过公共(public)的、App Store 合法的 API 实现,我会非常希望,但如果有必要使用私有(private) API,我也会采用。

谢谢!

最佳答案

不幸的是,唯一可用的方法是轮询(嘘!)。没有任何通知,也没有任何可观察的更改的粘贴板内容。查看苹果的ClipboardViewer sample code看看他们如何处理检查剪贴板。添加一个(希望不是过于热心的)计时器来不断检查差异,您就得到了一个适合应用商店的基本(如果笨重)解决方案。

通过 bugreporter.apple.com 提交增强请求请求通知或其他回调。不幸的是,最早在下一个主要操作系统发布之前它不会对您有帮助,但现在它正在轮询,直到我们都要求他们给我们提供更好的东西。

关于cocoa - 每当写入 NSPasteboard 时我都可以收到回调吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5033266/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com