【发布时间】:2022-01-23 05:18:19
【问题描述】:
我有一个 macOS SwiftUI 小部件(使用 WidgetKit),支持的最低操作系统版本设置为 11。这个细节很重要,因为我想在用户单击/点击链接视图时运行一些代码:
Link("StackOverflow.com", destination: URL(string: "https://www.stackoverflow.com/")!)
.environment(\.openURL, OpenURLAction { url in
print("hello, world")
return .systemAction
}
)
这仅适用于 SwiftUI: use Link with onTapGesture 中指定的 macOS 12+,因为 it's a read-only property in macOS 11。如何让它在 macOS 11 上运行?我试过了
- 为
onTapGesture添加一个永远不会被调用的处理程序 - 为永远不会被调用的父
HStack添加一个onTapGesture - 从链接的
onOpenURL处理程序发布通知并在HStack 的onReceive中接收通知(参考How to set addObserver in SwiftUI?) - 删除了
Link并将其设置为Button并设置了action:,但处理程序似乎从未被调用
徒劳。
【问题讨论】:
-
你想在那个动作中做什么?我只是试图了解解决方法的可能方向。
标签: macos swiftui hyperlink widgetkit