如何在macOS 10.15上使用SwiftUI添加工具提示

3
根据苹果公司的说法,在macOS 11中才能使用help修改器,那么在macOS 10.15中如何添加工具提示?
在macOS 11的SwiftUI中,您可以使用`.help(“Tooltip text”)`视图修改器来添加工具提示。详情请参阅WWDC 2020年的“What's new in SwiftUI”讲座。 参考链接:
1个回答

8

解决方法是使用一个过时的经典 NSView 来导入 SwiftUI。

struct Tooltip: NSViewRepresentable {
    let tooltip: String
    
    func makeNSView(context: NSViewRepresentableContext<Tooltip>) -> NSView {
        let view = NSView()
        view.toolTip = tooltip

        return view
    }
    
    func updateNSView(_ nsView: NSView, context: NSViewRepresentableContext<Tooltip>) {
    }
}

public extension View {
    func toolTip(_ toolTip: String) -> some View {
        self.overlay(Tooltip(tooltip: toolTip))
    }
}

使用修改器

            Image("pin")
                .resizable()
                .toolTip("TEST")

在此输入图片描述

同时,一个开源的解决方案可以在GitHub上找到:https://github.com/quassummanus/SwiftUI-Tooltip


这个很好用 - 在某些情况下,我发现需要在 Tooltip(tooltip: toolTip) 后面添加 .allowsHitTesting(false),否则我的 Toggle 没有接收到点击。 - Max Chuquimia
1
我刚遇到这个问题,它非常有效。我修改了它以接受一个闭包来提供动态提示。如果其他陷入10.15世界的人有兴趣,我很乐意发布。我也在理解视图修饰符。所以我将整个东西都包装在一个视图修饰符中。似乎并没有为原始功能增加太多。对于更有经验的人来说,将其作为ViewModifier包装起来是否有实质性的好处? - altimes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接