首页 > 解决方案 > Swift - MacOS NSPasteboard - 同时支持 HTML 和纯字符串

问题描述


我有一个用例,我希望我的应用程序存储剪贴板数据,然后允许用户将其粘贴出来。
问题是 - 我想既支持 HTML 样式的文本(同时保持其样式),也支持简单的纯文本。
到目前为止,我所拥有的是:
let pasteboard = NSPasteboard.general
pasteboard.declareTypes([.html, .string], owner: nil)
let copiedString = pasteboard.string(forType: .html) ?? pasteboard.string(forType: .string) {
pasteboard.setString(copiedString, forType: .html)

我的问题是,当我尝试将推送到剪贴板的内容粘贴时;它仅适用于实际支持 HTML 格式文本的应用程序,例如 Chrome / Microsoft Word。
例如,当我尝试将内容粘贴到 XCode 中时,它根本不会吐出任何内容。

理想情况下,我希望我的剪贴板根据我正在使用的应用程序进行自我调整 - 如果应用程序支持,则将文本粘贴为 HTML,否则 - 粘贴纯文本。

我怎样才能实现这种行为?
谢谢!

标签: htmlswiftclipboardnspasteboard

解决方案


推荐阅读