如何制作SwiftUI,使文本中有一个按钮可以打开包含文档的文件?

如何制作SwiftUI,使文本中有一个按钮可以打开包含文档的文件?,swift,swiftui,Swift,Swiftui,单击绿色文本打开文档 这是怎么做到的: 这里是可能的受限方法(仅在SwiftUI中),但在某些情况下可能是合适的(因此我认为值得发布) 我们的想法是在已知的可点击/不可点击部分上断开文本,并在视觉上将它们组合在一起,只允许对某些重叠部分进行点击 在演示屏幕截图上,相应的区域以颜色为边框 struct DemoPartiallyClickedText:View{ var body:一些观点{ HStack{ 图像(系统名称:“方形”) .foregroundColor(.绿色) VStack{

单击绿色文本打开文档 这是怎么做到的:

这里是可能的受限方法(仅在SwiftUI中),但在某些情况下可能是合适的(因此我认为值得发布)

我们的想法是在已知的可点击/不可点击部分上断开文本,并在视觉上将它们组合在一起,只允许对某些重叠部分进行点击

在演示屏幕截图上,相应的区域以颜色为边框

struct DemoPartiallyClickedText:View{
var body:一些观点{
HStack{
图像(系统名称:“方形”)
.foregroundColor(.绿色)

VStack{//如果您需要通用本地化解决方案,那么SwfitUI不提供这种可能性,应该使用基于UIKit/NSAttributedString的解决方案。如果您只需要一种特定于语言的解决方案,则存在变体/变通方法。
HStack {
         checkBox1
         .foregroundColor(.green)
         Text("Даю свое Согласие на обработку персональных данных")
         Spacer()
}
struct DemoPartiallyClickedText: View {
    var body: some View {
        HStack {
            Image(systemName: "square")
                .foregroundColor(.green)
            VStack {  // << any container
                Text("Даю свое").foregroundColor(.clear) +
                Text(" Согласие на обработку персональных данных").foregroundColor(.green)
            }
            .onTapGesture {          // allowed tap
                print(">> tapped")
            }
            .overlay(
                Text("Даю свое").contentShape(Rectangle())
                   .onTapGesture {},                   // << blocked !!
                alignment: .topLeading)
            Spacer()
        }
    }
}