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

Другие вопросы по тегам