【问题标题】:SwiftUI: use Link with onTapGestureSwiftUI:将链接与 onTapGesture 一起使用
【发布时间】:2021-12-24 12:17:44
【问题描述】:

我想在我的 SwiftUI 视图中指定一个链接,但我也想在Link 是否实际被点击时注册。最好的方法是什么?我尝试在链接上添加onTapGesture(我相信这是一个视图):

Link("Test", destination: URL(string: "testThreePanel://")!)
                    .onTapGesture {
                        print("Testing button link tapped")
                    }

onTapGesture 在点击链接时不会被调用。

还有其他方法吗?

【问题讨论】:

    标签: swiftui


    【解决方案1】:

    你可以试试这个,对我有用,但只适用于 iOS15 / macOS12:

    // iOS15 / macOS12 only 
    Link("Test", destination: URL(string: "https://duckduckgo.com")!)
            .environment(\.openURL, OpenURLAction { url in
                print("---> testing link actioned")
                return .systemAction
            })
    

    【讨论】:

    • 我试过这个并收到一条错误消息:“密钥路径值类型'WritableKeyPath'不能转换为上下文类型'KeyPath'”
    • 这应该只适用于 iOS 15.0 / macOS 12.0 吗?因为我还需要支持 iOS14 / macOS11。
    • 是的,你是对的,它适用于 ios 15、macos 12。问题中没有提到 io14。如果对你没有用,我会删除我的答案。
    • 谢谢。您可以将原始答案标记为仅适用于iOS15 / macOS12,我将其标记为答案。我不相信目前还有其他方法可以做到这一点。
    • 更新了我的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-21
    • 1970-01-01
    • 2020-04-17
    相关资源
    最近更新 更多