问题标签 [swiftui-environment]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swiftui - 从 EnviromentObject 的属性中选择选取器
当我使用我的 EnviromentObject 时,我遇到了 Picker 选择问题。我的环境对象是用户设置,用户在其中保存偏好,如语言、货币等。我在 contentview 中添加了这个对象,作为环境对象,在 scenedelegate 中声明。UserSettings 结构有一个 Picker。我的目标是将所选设置语言显示为第一个选择器选择,但我有 2 个问题:1)第一个选择不起作用 2)当我选择选择器中的列表项时,视图会自动关闭到主视图。假设视图 A(主视图),视图 B 是选择器所在的视图,视图 C 是我点击我的选择器时的视图。当我点击模拟器时,模拟器会自动从 C--> B (ok) 和 1 秒后从 B--> A。这是我的代码。任何建议将不胜感激。谢谢
这是我的结构:
主屏幕,比如说主页
选择器不显示首选语言(我确定环境对象已设置属性
当我点击选择器时,我看到了列表并且没问题,但是当我选择一个项目时,模拟器会自动返回到屏幕截图 n°2 并在主屏幕 n°1 上 1 秒后
swiftui - 在 SwiftUI AppLifecycle Document App 中,如何在活动的 ContentView 中获取菜单命令?
我正在使用 SwiftUI 应用程序生命周期编写一个 MacOS 文档应用程序,我在这里和其他地方看到的用于将菜单操作发送到活动窗口的所有技巧都依赖于使用特定于平台的实现,这在 SwiftUI 生命周期应用程序中(大部分)不可用. 我正在寻找类似 SideBarCommands() 的东西,它添加了一个菜单项,当通过鼠标或命令键选择时,它会切换活动窗口中侧边栏的外观。到目前为止,我看到的所有命令示例都是微不足道的,没有一个解决多文档、多窗口的用例。
鉴于这样声明的 ContentView:
和一个命令,通过以下方式添加:
我需要做什么才能使按钮关闭可以在活动的ContentView 上调用 menuTickle()?我知道它可以做到,因为它可以做到SideBarCommands()
(除非 Apple 使用一些非公共 API 来做到这一点......)。
对于奖励积分,请告诉我如何body
在评估时检测我是否是活动的 ContentView,以及如何检测它何时发生变化!跟踪Environment
变量scenePhase
是没有价值的——它总是报告活动,并且永远不会改变。
swift - 在 SwiftUI 中实现 DFS 时崩溃
我是 SwiftUI 的新手,我试图在 SwiftUI 中制作一个 DFS(深度优先搜索)可视化工具。我有以下代码。
dfs(0, 0)
我从水龙头MazeView.swift
上调用该功能。Button
我正在根据Maze
类中访问的矩阵显示彩色圆形按钮。代码运行第一次迭代,然后崩溃。我根本不知道出了什么问题。
请看一下代码。真的很感谢你的帮助。
ios - 无法通过下标/环境键分配
在使用 SwiftUI 开发 iOS 应用程序时,我面临以下情况。根据我在网上的一些教程中找到的内容,我设置了一个自定义环境密钥。这是 SceneDelegate.swift 文件中的相关代码。
然后在某个文件中进一步向下查看层次结构:
起初一切似乎都很顺利,直到我遇到了这个错误消息的 handleEvent 函数的执行:
我可以在我的代码中修改什么(可能是我的自定义环境键的设置方式)以便能够通过下标进行分配?
ios - 在 SwiftUI 中播放音频时无法更新行颜色
在使用 开发iOS
应用程序SwiftUI
时,我面临以下情况。我已经设置了一个自定义环境键。这是SceneDelegate.swift文件中的相关代码。
然后再往下,在视图层次结构中,在一些视图文件中:
这是问题所在。当我在 ListItemView 中播放音频文件列表时,匹配的行项目应该改变播放文件的颜色。为此的工作是在 handleEvent 函数中完成的,我可以检查这是否按预期发生。但是列表中显示的颜色并没有改变。这是为什么?
我设置环境变量rowColorMasterDico的方式有误吗?还是我错过了其他东西?我已经尝试了上面代码的许多不同变体,但我无法使其工作。我希望有人会在某个地方看到并指出错误。
swiftui - SwiftUI 找不到 ObservableTest 类型的 ObservableObject。ObservableTest 的 View.environmentObject(_:) 作为该视图的祖先可能会丢失
要重现问题,请使用以下代码并执行以下操作步骤:
- 点击TestB View两次,
- 向下滚动关闭页面,过程中会出现上述问题。
swift - 在安装在 View 之外访问 State 的值。这将导致初始值的恒定绑定,并且不会更新
我试图将手势封装在一个类中,然后在另一个视图中调用它。我的项目可以运行良好,也可以构建良好。但是 Xcode12 给了我一个粉红色的错误。这是我的代码
ios - 无法将“String”类型的值转换为指定类型“NWEndpoint.Host”
通过 UDP 发送命令的 SwiftUI 代码
我想要的是
我需要设置这个:
到决定性结构中的价值观。我知道我不能在视图之外执行此操作,但我也无法在视图内部执行此操作。
错误
在线var IP: NWEndpoint.Host = dispositive.ip
代码
这是我的代码:
决定性的
决定性结构:
swiftui - swiftui中的自动完成搜索不起作用
我有一个 TextField 作为搜索框。我想让它自动搜索,即每当我在 TextField 中输入一个字母时,我应该不按回车就得到结果。这是我的代码:
但它不是那样工作的。在文本字段中输入一个字母后,当我按下回车键时,它首先打印“onCommit”,然后打印“isEditing”。知道如何让它工作吗?
ios - 当环境对象更新导致同一视图重新加载时,如何导航到另一个 SwiftUI 视图
我想要实现的目标:我是一名新的 SwiftUI 开发人员。我正在尝试构建一个简单的地址簿应用程序。我有三个观点:
- ContentView - 包含列表视图中所有联系人的主视图,在导航视图顶部带有添加联系人 ('+') 和编辑按钮
- AddContact 视图 - 具有“名称”和“电子邮件”文本字段以及“提交”按钮
- DisplayContactDetails 视图 - 与此问题无关。
我创建了一个环境对象“myContacts”,它是一个“联系人”对象数组,并将它传递到 ContentView 以跟踪通讯簿中的所有联系人
当用户导航到 AddContact 视图、添加姓名和电子邮件并提交时,我希望更新环境对象“myContacts”并将用户导航回 ContentView,以便他们可以看到包含新联系人的通讯簿包括。
问题:
当用户在 AddContact View 上按下“提交”时,它会正确调用我创建的导航链接以将用户发送回 ContentView。但是因为环境对象“myContacts”也被提交更新了,它会立即再次从 ContentView 导航回 AddContact View。因此,它似乎首先执行导航链接,然后由于 myContacts 的刷新而重新加载 AddContact 视图。
代码 - 内容视图:
代码 - AddContactView
我试过的
如果我注释掉 .add 方法并且不更新环境对象,则导航回 ContentView 将按预期工作。所以我知道这具体是问题的原因。
我尝试将 .onTapGesture 修饰符添加到 Button 并在那里调用 .add 。
我尝试将 .onDisappear 修饰符添加到整个视图并在那里调用 .add 。
- 任何有关解决此问题的帮助或澄清将不胜感激
编辑:屏幕录制 - 根据第一条评论尝试解决方案:
奇怪的行为:第一次尝试添加联系人自动路由回 AddContactView,产生相同的错误。但是,如果我再次尝试它,那么它会正确路由到 ContactView。