💡
原文中文,约1100字,阅读约需3分钟。
📝
内容提要
文章讨论了在macOS的SwiftUI中使用onOpenURL时,如何避免每次点击都打开新窗口。通过设置preferring和allowing参数,可以激活现有窗口或创建新窗口。解释了这两个参数的含义,以帮助开发者理解事件处理。
🎯
关键要点
- 在macOS的SwiftUI中,使用onOpenURL时每次点击都会打开新窗口,这会造成困扰。
- 可以通过设置preferring和allowing参数来激活现有窗口或创建新窗口。
- preferring参数是一个字符串集,用于检查视图的targetContentIdentifier,以确定视图是否倾向于处理外部事件。
- allowing参数是一个字符串集,用于检查视图的targetContentIdentifier,允许视图处理事件。
- 空集永远不会匹配,而'*'总是匹配。
❓
延伸问答
如何在SwiftUI中使用onOpenURL避免每次点击都打开新窗口?
可以通过设置preferring和allowing参数来激活现有窗口或创建新窗口。
preferring和allowing参数在onOpenURL中有什么作用?
preferring参数用于检查视图的targetContentIdentifier,以确定视图是否倾向于处理外部事件;allowing参数则用于检查视图是否允许处理事件。
在使用onOpenURL时,空集和'*'的匹配规则是什么?
空集永远不会匹配,而'*'总是匹配。
如何在macOS的SwiftUI中处理外部事件?
可以使用handlesExternalEvents方法结合preferring和allowing参数来处理外部事件。
使用onOpenURL时,如何确保只打开一个窗口?
通过设置handlesExternalEvents的preferring参数来检查现有窗口,并使用allowing参数来允许处理事件。
在SwiftUI中,如何调试onOpenURL的URL?
可以在onOpenURL的perform闭包中打印url,以进行调试。
➡️