We use NSLayoutManager/NSTextStorage/NSTextContainer to display markdown attributed string on a canvas. MarkDown string was processed properly, but NSLayoutManager just exhibits the plain text. The code is as follows:
var layoutmanager = NSLayoutManager() var textstorage = NSTextStorage() var textcontainer = NSTextContainer() var attrStr = try AttributedString.init(markdown: "**test**", options: AttributedString.MarkdownParsingOptions(interpretedSyntax: .inlineOnlyPreservingWhitespace)) var attrString = NSMutableAttributedString(attrStr) self.textstorage.setAttributedString(attrString!) // draw text layout let range = self.layoutmanager.glyphRange(for: self.textcontainer) self.layoutmanager.drawBackground(forGlyphRange: range, at: self.textLocation) self.layoutmanager.drawGlyphs(forGlyphRange: range, at: self.textLocation)
Is it because TextKit 1 does not support markdown string display or I miss something else ?
Any help will be appreciated. Thanks!
I made a sample project to show how I solved this:
https://github.com/frankrausch/AttributedStringStyledMarkdown