iOS和macOS具有称为“通用剪贴板”的内置功能,可使用iCloud在设备之间同步剪贴板的内容。
NSPasteboard.general.clearContents()
NSPasteboard.general.writeObjects("Test 123")
我想在Cocoa应用程序的通用粘贴板上写一些东西,以便在不与其他iCloud设备同步的情况下在应用程序之间共享。我找不到解决方法。实际上,我认为如果没有用户在设置中手动禁用它,这是不可能的。
文档说:
可通过通用类方法获得的通用粘贴板自动参与macOS 10.12和更高版本以及iOS 10.0和更高版本中的通用剪贴板功能。没有用于与此功能交互的macOS API。 https://developer.apple.com/documentation/appkit/nspasteboard
但是也许有一种解决方法,一个私有API(我知道没有App Store)或其他人可能知道的东西。 :)
欢呼
答案 0 :(得分:3)
是的,常规粘贴板可用于所有应用程序,但NSPasteboard可用于创建专用粘贴板。您所需要做的就是:
let myPasteboard = NSPasteboard(name: NSPasteboard.Name("mypasteboard"))
您可以查看文档here。因此,您可以将粘贴的项目复制到私有粘贴板上,然后,仅在需要时,才可以将数据传输到常规粘贴板上,并使数据可用于所有应用程序。
但是,如果要防止在设备之间共享通用剪贴板,您要做的就是:
let generalPasteboard = NSPasteboard.general
// current host only
generalPasteboard.prepareForNewContents(with: .currentHostOnly)
// write here to the pasteboard