URL Scheme/onOpenURL总是打开一个新窗口(使用SwiftUI开发Mac应用)
文章摘要
HeoGPT
文章提供了SwiftUI开发Mac应用时处理onOpenURL总打开新窗口问题的解决方法,包含代码示例,并解释了如何使用.handlesExternalEvents及其参数。
此内容根据文章生成,并经过人工审核,仅用于文章内容的解释与总结
投诉在使用小组件之类的元素经常涉及到onOpenURL,但是每次点击都会打开一个新窗口,就会特别烦。
解决方法
文章 “[在macOS 上的 SwiftUI 2.0 中打开窗口/场景 “介绍了如何打开窗口。我摘录了其中的部分内容,使它能简单地打开我的窗口,而不是另一个窗口。
1 | var body: some Scene { |
对于那些希望(尝试)更好地理解 preferring
和 allowing
参数的人。引用苹果文档的意思:
preferring 参数是一个字符串集,用来检查它们是否包含在这个视图的 targetContentIdentifier 中(在这个案例中是 ContentView),以确定这个视图是否更倾向于处理外部事件(在此案例中为 openURL)而非其他视图。
allowing 参数是一个字符串集,用来检查它们是否包含在这个视图的 targetContentIdentifier 中,允许视图处理事件。
空集永远不会匹配。”*” 总是匹配。
参考文章
在macOS 上的 SwiftUI 2.0 中打开窗口/场景
Why does URL Scheme/onOpenURL in SwiftUI always open a new window?
Apple Documentation on handlesExternalEvents(preferring:allowing:)
- 感谢你赐予我前进的力量
打赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 张洪Heo
评论
生成评论
匿名评论
违规举报
✅ 你无需删除空行,直接评论以获取最佳展示效果