暂时禁用通用剪贴板
Disable Universal Clipboard temporarily
iOS 和 macOS 有一个称为通用剪贴板的内置功能,可以使用 iCloud 跨设备同步剪贴板的内容。
NSPasteboard.general.clearContents()
NSPasteboard.general.writeObjects("Test 123")
我想在我的 Cocoa 应用程序的通用粘贴板上写一些东西,以便在不与其他 iCloud 设备同步的情况下在应用程序之间共享它。我找不到办法做到这一点。事实上,我认为如果用户不在设置中手动禁用它是不可能的。
文档说:
The general pasteboard, available by way of the general class method, automatically participates with the Universal Clipboard feature in macOS 10.12 and later and in iOS 10.0 and later. There is no macOS API for interacting with this feature.
https://developer.apple.com/documentation/appkit/nspasteboard
但也许有解决方法,私有 API(我知道没有 App Store)或其他人可能知道的东西。 :)
干杯
是的,通用粘贴板适用于所有应用程序,但 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
iOS 和 macOS 有一个称为通用剪贴板的内置功能,可以使用 iCloud 跨设备同步剪贴板的内容。
NSPasteboard.general.clearContents()
NSPasteboard.general.writeObjects("Test 123")
我想在我的 Cocoa 应用程序的通用粘贴板上写一些东西,以便在不与其他 iCloud 设备同步的情况下在应用程序之间共享它。我找不到办法做到这一点。事实上,我认为如果用户不在设置中手动禁用它是不可能的。
文档说:
The general pasteboard, available by way of the general class method, automatically participates with the Universal Clipboard feature in macOS 10.12 and later and in iOS 10.0 and later. There is no macOS API for interacting with this feature. https://developer.apple.com/documentation/appkit/nspasteboard
但也许有解决方法,私有 API(我知道没有 App Store)或其他人可能知道的东西。 :)
干杯
是的,通用粘贴板适用于所有应用程序,但 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