- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已阅读 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/
将字符串或数字数组发送到粘贴板的最佳方法是什么? 我尝试过使用 [pasteBoard writeObjects:] 但看起来我必须子类化 NSArray 才能做到这一点,它需要一个协议(protoc
从后台线程将数据写入 NSPasteboard 对象是否安全?我似乎无法在任何地方找到明确的答案。我认为假设是在拖动开始之前数据将被写入粘贴板。 背景: 我有一个从 Evernote 获取数据的应用程
有没有办法取消对 NSPasteboard 的过滤,以获取源应用程序明确声明的它将提供的内容? 我正在尝试在我的应用程序中序列化粘贴板数据。当另一个应用程序将 RTF 文件放在粘贴板上,然后我询问可用
我无法让此方法返回 YES: - (BOOL) writeToPasteBoard:(NSString *)stringToWrite { return [pasteBoard setStri
虽然我有工作代码,但我很困惑我是否对 NSPasteboard 采用了正确的方法,并且我正在联系以查看是否有人可以帮助我阐明最佳方法。 自 2012 年以来,Apple 似乎没有编写任何关于拖放的完整
有没有一种方法可以从粘贴板中全局删除当前项目(在任何应用程序中按 Command+V 时将显示的项目)并使其能够按 Command+ V 粘贴最后复制的项目? 假设我复制 foo 然后复制 bar,我
我正在使用 NSPasteboardWriting 协议(protocol)在 NSPasteboard 上编写自定义对象。如何为自定义对象创建UTI? - (NSArray *)writableTy
我一直在尝试不同的文件路径和不同类型的组合,但基本上我想做的是复制一个名为“test”的文件夹,该文件夹位于我的资源文件夹内。 当我给出绝对路径(例如:/Users/dw/src/Menulet)时,
我想使用 NSPasteboard 数据启动应用程序(或使用 AppleEvents 发送给它们),就像在 Finder 中将文件、文本、图像拖放到应用程序(或 Dock 中)并启动时所做的那样或调用
您可以像这样调用NSPasteboard: [pboard declareTypes:types owner:self]; 这意味着粘贴板稍后会要求所有者根据需要提供类型的数据。然而,我无法从文档中找
我有一个属于此类的对象,其中包含以下声明: 标题 @interface MyClassObject : NSObject @property (nonatomic, strong) NSArray
我已阅读 Apple 的 Pasteboard Programming Guide ,但它没有回答我的特定问题。 我正在尝试编写一个 Cocoa 应用程序(适用于 OS X,而不是 iOS),它将跟踪
我正在开发一个可在两个 NSTableView 之间拖放文件的 Cocoa 应用程序。我不想只使用 URL,而是想使用自定义结构,这样我就可以在需要时访问更多数据,而不是不断调用 FileManage
我有一个符合 NSCoding 协议(protocol)的自定义类。下面是我如何实现协议(protocol)的方法。 User.swift required init?(coder aDecoder:
好的,这是我正在使用的代码: if let image = NSImage(pasteboard: pasteboard){ //.. } 我有 3 种方式将图像输入应用程序: 如果将图像拖到
我们应该如何使用NSPasteboard剪切和粘贴文件?目前我通过写入和读取文件 URL 来实现复制和粘贴。 cut 的问题是,在我将 URL 写入粘贴板后,我必须删除该文件。当我尝试粘贴该文件时,它
我正在尝试将 html 数据复制到 MAC 上的剪贴板。但是当我使用(Finder->编辑菜单->显示剪贴板)检查剪贴板时,它什么也不显示。我希望按原样粘贴格式化数据。下面是我正在使用的代码: NSP
我们的一位客户在粘贴时有时会遇到这样的崩溃: 0 com.apple.Foundation 0x9143bd1d readPointerAt + 9 1 com.apple.Foundation 0x
我有一个 NSBroswer,其中包含一系列查找文本 blob 的条目。如果 Blob 存在那么- (BOOL)browser:canDragRowsWithIndexes:inColumn:with
我希望将 NSPasteboard.generalPasteboard() 暂时切换为我的应用使用 NSPasteboard.pasteboardWithUniqueName() 生成的自定义版本 这
我是一名优秀的程序员,十分优秀!