Q1:-我有NsTextList并且它有[NsTextListElement],我想用其他元素(如NsTextParagraph或NstextListElement或AttributedString)替换NsTextListElement。由于某种原因,以下方法根本不起作用。我找不到任何替换元素的替代方法
textLayoutManager.replaceContents(in: element.elementRange, with: NSAttributedString(string: "happy"))
Q2 :- 我正在尝试使用 TextKit 2 给出的 NsTextList 等元素来创建列表,是否可以做这样的列表,或者我应该手动做?
Q1:您使用的方法
textLayoutManager.replaceContents(in: element.elementRange, with: NSAttributedString(string: "happy"))
正在尝试用字符串“happy”替换NsTextListElement的内容。但是,此方法可能无法按预期工作,因为它试图用纯字符串替换复杂元素。
要将 NsTextListElement 替换为 NsTextParagraph 或 AttributedString 等其他元素,您需要创建要替换的新元素,然后相应地更新文本布局。以下是您可以采取的一般方法:
这就是它的样子:
let newAttributedString = NSAttributedString(string: "happy")
let elementRange = element.elementRange
textLayoutManager.replaceContents(in: elementRange, with: newAttributedString