ios SwiftUI -MacOS的Markdown样式问题

ldioqlga  于 2023-05-08  发布在  iOS
关注(0)|答案(1)|浏览(124)

我在iOS和MacOS上运行了以下代码,发现了一个差异。

struct ContentView: View {
    var body: some View {
        VStack {
            Text(text)
        }
    }
    
    var text: AttributedString {
        let markdown = "[This is a link](https://queue.community)"
        var attributedString: AttributedString = try! AttributedString(markdown: markdown)
        let fullStringRange = attributedString.startIndex..<attributedString.endIndex
        attributedString[fullStringRange].foregroundColor = .red
        return attributedString
    }
}

当我运行针对iOS的代码时,它正确地将链接颜色覆盖为红色,但当我针对MacOS时,它保持默认的蓝色。我需要在MacOS上覆盖foregroundcColor的能力。(见图片)
iOS rendering
Macos rendering
https://i.stack.imgur.com/HQzsg.jpg
请解释我如何做到这一点:它是核心功能。
我试过使用mergeAttributes,但没有成功。我也试过使用替换属性,但覆盖了整个链接,我找不到一种方法来保持链接和改变它的颜色。

nuypyhwy

nuypyhwy1#

好吧,我的回答是。
您可以只使用attributedString.foregroundColor = .red而不使用范围设置。
但是,您的代码在使用Xcode 14.3的ios 16和macos13.4上运行良好。我在真实的设备上测试了它,而不是预览。
所以升级您的macOS > 13.3

相关问题