Text() игнорирует несколько абзацев из AttributedString(markdown: ...)
Учитывая строку уценки «**Line 1**\ n \ n Line 2», я ожидаю вывод
Линия 1
Линия 2
Вместо этого я получаю
Линия 1 Линия 2
Конечно, это не ограничение уценки или AttributedString. Что мне не хватает?! Как указать несколько абзацев, если они не состоят из двух пустых строк?
struct DemoView_Previews: PreviewProvider {
static var previews: some View {
Text(try! AttributedString(markdown: "**Line 1**\n\nLine 2"))
}
}
2 ответа
Как выяснилось на форумах разработчиков Apple ,
.inlineOnlyPreservingWhitespace
нужно:
Text(try! AttributedString(markdown: "**Line 1**\n\nLine 2",
options: AttributedString.MarkdownParsingOptions(interpretedSyntax:
.inlineOnlyPreservingWhitespace)))
И, конечно же, для тех, кто может получить этот ответ позже, стоит упомянуть, что если вам не нужно использовать
AttributedString
напрямую или не передают переменную в
Text
, вы можете напрямую использовать строковый литерал с уценкой:
Text("**Line 1**\n\nLine 2")
Хорошо, как это работает
Text(try! AttributedString(markdown: "**Line 1**\nLine 2", options: .init(interpretedSyntax: .inlineOnlyPreservingWhitespace)))
Но если вы загружаете текст из plist, он не работает с размещением там \n Что вам нужно сделать, это добавить Enter + Option