TextKit 2:replaceContents(in:with:) 不起作用

问题描述 投票:0回答:1

Q1:-我有NsTextList并且它有[NsTextListElement],我想用其他元素(如NsTextParagraph或NstextListElement或AttributedString)替换NsTextListElement。由于某种原因,以下方法根本不起作用。我找不到任何替换元素的替代方法

textLayoutManager.replaceContents(in: element.elementRange, with: NSAttributedString(string: "happy"))

Q2 :- 我正在尝试使用 TextKit 2 给出的 NsTextList 等元素来创建列表,是否可以做这样的列表,或者我应该手动做?

uikit textkit apple-documentation textkit2
1个回答
0
投票

Q1:您使用的方法

textLayoutManager.replaceContents(in: element.elementRange, with: NSAttributedString(string: "happy"))
正在尝试用字符串“happy”替换NsTextListElement的内容。但是,此方法可能无法按预期工作,因为它试图用纯字符串替换复杂元素。

要将 NsTextListElement 替换为 NsTextParagraph 或 AttributedString 等其他元素,您需要创建要替换的新元素,然后相应地更新文本布局。以下是您可以采取的一般方法:

  • 创建要替换现有 NsTextListElement 的新元素。
  • 获取现有NsTextListElement的范围。
  • 在文本布局管理器中用新元素替换现有元素。

这就是它的样子:

let newAttributedString = NSAttributedString(string: "happy")
let elementRange = element.elementRange

textLayoutManager.replaceContents(in: elementRange, with: newAttributedString
© www.soinside.com 2019 - 2024. All rights reserved.