SwiftUI中如何使用变量实现文本内可点击链接?
SwiftUI:让@State变量字符串的Text具备可点击跳转能力
当你用字符串字面量初始化Text时,SwiftUI会自动识别URL格式并启用点击跳转,但使用@State变量时不会触发这个默认行为。以下是无需Link控件或显式传递URL类型的解决方法:
struct ContentView: View { @State var link: String = "https://www.youtube.com" var body: some View { Text(attributedLink) .foregroundColor(.blue) .underline() } private var attributedLink: AttributedString { var attrString = AttributedString(link) if let url = URL(string: link) { attrString.link = url } return attrString } }
关键说明
- 通过将字符串转换为
AttributedString,手动添加link属性,Text会识别该属性并赋予点击跳转功能 - 这里仅在内部临时创建
URL用于设置富文本属性,没有使用Link控件,满足你的需求
内容的提问来源于stack exchange,提问作者Bart Van de Veire
相关产品推荐
相关产品推荐

