swift - 将带有图像的富文本复制到 NSPasteboard 并粘贴到 Word
问题描述
我想NSPasteboard
通过代码设置文本和图像,然后我可以粘贴到 Microsoft Word 中。
现在我想到的一种方法是组织一个 RTF 对象并通过以下方式设置:
let board = NSPasteboard.general
board.clearContents()
board.setData(data, forType: .rtf)
所以我通过下载一个 RTF 文件和这样的过程进行测试:
func test() {
let url = Bundle.main.url(forResource: "cat", withExtension: "rtf")
if url != nil {
let data = try? Data.init(contentsOf: url!)
if (data == nil) {
print("data is null")
return
}
print("data", data)
let board = NSPasteboard.general
board.clearContents()
// still rtf image is losted.
let rst = board.setData(data, forType: .rtf)
if (!rst) {
print("setData failed")
}
}
}
它部分工作,但图像丢失。只粘贴了文字。
我该如何解决这个问题。或任何其他方式(将图像和文本复制到NSPasteboard
)。
测试rtf 文件
我搜索的一些链接:
将带有图像的 NSAttributedString 保存到 RTF 文件时遇到问题
https://developer.apple.com/documentation/foundation/nsattributedstring/documenttype/1532538-rtf/
解决方案
推荐阅读
- mongodb - 如何清除 mongo DB 中多个集合的数据?
- javascript - 如何创建一个假的 Gamepad 对象?
- gitlab - 当我想在这些应用服务器之一上运行更新时出错,我得到:
- xcode - ITMS-90725:SDK 版本问题
- sql - Sql 获取所有列匹配的不同行,除了一个
- php - 我无法让 PHP zip 扩展在 WAMP 上工作
- mongodb - 查询其中包含两个或多个空格的单词/字符串
- kofax - Kofax“编辑表头”不允许单个文档的第二页导航
- c# - 如何使用其字符串值序列化枚举列表
- powershell - 如何使用 PowerShell 检查闪存驱动器是否可启动?