首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从NSPasteboard检索时backgroundColor属性丢失

从NSPasteboard检索时backgroundColor属性丢失
EN

Stack Overflow用户
提问于 2018-03-21 05:26:52
回答 1查看 136关注 0票数 0

当我从NSPasteboard检索NSAttributedString时,背景色丢失了。这就是我要复制的:

下面是返回的内容(我将其保存为rtf文件):

这是我的代码:

代码语言:javascript
复制
func readBoard () {
var board = NSPasteboard.general
    var attr = board.readObjects(forClasses: [NSAttributedString.self])![0] as! NSAttributedString
print(attr)
    export(attributedText: attr)
}

func export(attributedText:NSAttributedString) {

    let file = "Output.rtf"

        do {

            let range = NSRange(location: 0, length: attributedText.length)

            if let data = attributedText.rtf(from: range, documentAttributes: [NSAttributedString.DocumentAttributeKey.characterEncoding : String.Encoding.utf8, NSAttributedString.DocumentAttributeKey.documentType : NSAttributedString.DocumentType.rtf]) {

                if let dir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first {
                    let url = dir.appendingPathComponent(file)

                    try! data.write(to: url)
                }
            }

        }
        catch {

        }


    }

如何保留backgroundColor属性?谢谢。

编辑:

当我打印board.types时,我得到这样的结果:

Optional(__ObjC.NSPasteboard.PasteboardType(_rawValue: dyn.ah62d4qmxhk4d425try1g44pdsm11g55gsu1e82xnqzv1kpneqz30g6xmsb4g86u),__ObjC.NSPasteboard.PasteboardType(_rawValue: com.microsoft.Object-Descriptor),__ObjC.NSPasteboard.PasteboardType(_rawValue: public.rtf),__ObjC.NSPasteboard.PasteboardType(_rawValue: NeXT Rich Text Format v1.0粘贴板类型),__ObjC.NSPasteboard.PasteboardType(_rawValue: Public.utf16-外部纯文本),__ObjC.NSPasteboard.PasteboardType(_rawValue: CorePasteboardFlavorType 0x75743136),__ObjC.NSPasteboard.PasteboardType(_rawValue: Public.utf8-纯文本),__ObjC.NSPasteboard.PasteboardType(_rawValue: NSStringPboardType),__ObjC.NSPasteboard.PasteboardType(_rawValue: dyn.ah62d4rv4gk81n65yru),__ObjC.NSPasteboard.PasteboardType(_rawValue: CorePasteboardFlavorType 0x7573746C),__ObjC.NSPasteboard.PasteboardType(_rawValue: com.apple.传统型mac-纯文本),__ObjC.NSPasteboard.PasteboardType(_rawValue: CorePasteboardFlavorType 0x54455854),__ObjC.NSPasteboard.PasteboardType(_rawValue: dyn.ah62d4rv4gk81g7d3ru),__ObjC.NSPasteboard.PasteboardType(_rawValue: CorePasteboardFlavorType 0x7374796C)、__ObjC.NSPasteboard.PasteboardType(_rawValue: public.html)、__ObjC.NSPasteboard.PasteboardType(_rawValue: Apple HTML粘贴板类型)、__ObjC.NSPasteboard.PasteboardType(_rawValue: plain.utf16-纯文本)、__ObjC.NSPasteboard.PasteboardType(_rawValue: CorePasteboardFlavorType 0x75747874)、__ObjC.NSPasteboard.PasteboardType(_rawValue: com.adobe.pdf)、__ObjC.NSPasteboard.PasteboardType(_rawValue: Apple PDF粘贴板类型)、dyn.ah62d4qmxhk4d425try1g44pdsm11g55gsu1en5pcqzwc4y5tsz3gg3k),(_rawValue: dyn.ah62d4qmxhk4d425try1g44pdsm11g55gsu1e24psrq0zg55zsmv0npneqz30g6xmsb4g86u),__ObjC.NSPasteboard.PasteboardType(_rawValue: com.microsoft.Link-Source),__ObjC.NSPasteboard.PasteboardType(__ObjC.NSPasteboard.PasteboardType: dyn.ah62d4qmxhk4d425try1g44pdsm11g55gsu1e24psrq0zg55zsmv0n),__ObjC.NSPasteboard.PasteboardType(_rawValue: com.microsoft.Link-Source),__ObjC.NSPasteboard.PasteboardType(_rawValue: com.microsoft.Link- __ObjC.NSPasteboard.PasteboardType(_rawValue: com.microsoft.Link-Source-Descriptor),__ObjC.NSPasteboard.PasteboardType(_rawValue: dyn.ah62d4qmxhk4d425try1g44pdsm11g55gsu1e82xnqzv1kxdmr3zu),__ObjC.NSPasteboard.PasteboardType(_rawValue: com.microsoft.ObjectLink),__ObjC.NSPasteboard.PasteboardType(_rawValue: com.apple.webarchive),__ObjC.NSPasteboard.PasteboardType(_rawValue: Apple Web Archive粘贴板类型),__ObjC.NSPasteboard.PasteboardType(_rawValue: Apple __ObjC.NSPasteboard.PasteboardType(_rawValue: com.microsoft.DataObject))

EN

回答 1

Stack Overflow用户

发布于 2018-03-22 08:33:52

我发现了问题所在。只有在从文本编辑中复制突出显示的文本时,输出才有backgroundColor (可能是因为它是一个rtf文件)。我正在复制Word中的高亮显示。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49394385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档