问题标签 [swiftui-form]

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.

0 投票
0 回答
138 浏览

swiftui - SwiftUI - 材质组件,文本字段

我想在我的 SwiftUI 应用程序中使用 mdc 组件。我用协议创建了一个类UIViewRepresentable,但我想将高度修改为某个常数,或者可能删除内部填充。

0 投票
1 回答
258 浏览

ios - 我们在swiftui中作为 UIButton(Sender: UIButton) 有什么?

在 UIKit 我通过代码捕获按钮发送者(单击哪个按钮)

我想在 SwiftUI 中完成同样的事情。

flagList.name 来自结构,我想捕捉单击了哪个按钮,以便我可以相应地调整标志名称。

0 投票
3 回答
260 浏览

swiftui - swiftui中的自动完成搜索不起作用

我有一个 TextField 作为搜索框。我想让它自动搜索,即每当我在 TextField 中输入一个字母时,我应该不按回车就得到结果。这是我的代码:

但它不是那样工作的。在文本字段中输入一个字母后,当我按下回车键时,它首先打印“onCommit”,然后打印“isEditing”。知道如何让它工作吗?

0 投票
1 回答
136 浏览

ios - SwiftUI / iOS / iPhone如何在存储之前加密数据/图像以及在哪里/如何在本地存储,一般最佳实践?

我是 SwiftUI(iOS App Ver 14.x)的新手,因为我通常使用 Xamarin。

在这种情况下,我需要专门用 SwiftUI 编写应用程序。(我知道有些东西仍然需要 UIKit)。

尽管我一般来说很难掌握在哪里以及如何存储东西,但我已经对此有所了解。

例如(大大简化)让我们说我想要以下内容:

都在同一个视图中。

两个表单域:

名字:……姓氏:……</p>

一个按钮,上面写着“添加照片”。

一个按钮,上面写着“本地保存”(不适用,但仅供参考,稍后将上传到在某些时候并不总是可用的 Web 服务)。

现在做所有标准的东西,这很简单。

但。

我想加密表单输入(一旦转换为 JSON,请注意我可以很容易地转换为 JSON)。

我还想在存储图像之前对其进行加密。(真正的应用程序有多个图像)。

这些东西将在真正的应用程序中使用非对称加密进行加密(我理解得很好,这在这里也不那么重要)。

但是为了举例,我很高兴将 JSON 和图片作为两个单独的文件“加密”,使用一些简单的东西来展示这个想法。异或它或一些简单的东西。

我的问题是,如果可能的话,最好的地方是用一些基本的例子来做这件事。我知道这有点主观,但只是简单而明显的事情。单击按钮,运行此功能,执行此类操作等。

我在哪里存放东西(我到处都能找到)?老实说,这是我困惑的主要来源。

我的理解是您将使用 FileManager 对象和文档目录(尽管我不确定这是否是最佳实践,甚至是正确的位置。

客户的要求是,出于合规性原因,没有任何内容未加密存储(完全忽略 Apple 的任何好或坏)。

0 投票
2 回答
143 浏览

swiftui - SwiftUI 绑定到列表元素仅更新以正确顺序输入的值

我有一个由 NavigationLink 呈现的编辑视图。它需要一个配方,该配方保存在具有一系列它们的管理器中。

应用程序代码(复制意大利面应该运行):

重现步骤:

  1. 添加一个新配方,这将带您进入编辑表单。
  2. 输入标题,后跟描述,请注意绑定似乎适用于此上下文中的其他文本字段。
  3. 保存,带您返回列表视图。
  4. 点击新食谱并注意缺少描述。

如果我在标题之前输入描述,两者都会在绑定到视图的模型上得到更新。但是,如果我在标题之后输入描述,则只保存标题。我是否显示/隐藏键盘或更改字段焦点似乎并不重要。即使我向Recipe模型添加更多属性,字段之后的每个字段都会存在相同的行为title......帮助?!

0 投票
0 回答
58 浏览

ios - SwiftUI:将表单的全部内容转换为 UIImage

无法获取 SwiftUI 表单内容大小。我正在尝试获取完整大小的 SwiftUI 表单,它的内容比屏幕大小更多,使其可滚动。使用 GeometryReader 仅给出屏幕尺寸(设备高度)而不是完整内容高度。我的下一个里程碑是拍摄整个表单的快照并将其转换为 UIImage 或 PDF。

0 投票
1 回答
251 浏览

swift - Swift @Published 导致 didSet 递归

以下测试代码有什么问题?当我在字段中输入一个字符时,didSet 进入一个递归循环。如果删除了 inout + &,则代码按预期运行,每次击键都会触发 didSet。同样,如果我删除了@Published,但保留了 inout 和 &,则不会发生 didSet 递归。

我为什么要这样做?我有一个表单字段类型(一个 4 char 十六进制字段),它需要通用处理,然后重新编码回基本结构。因此,目的是将所有公共代码抽象为一个函数,该函数在 ModelView 区域中设置每个 var 后触发。此代码只是重现该问题的最小示例。

看起来仅仅获取@published var 的地址就会触发关联的 didSet 。对此的解释是,即使没有进行任何更改,使用 inout总是会重新写入目标 var。

如果相关,这是在 Mac 上运行 Catlina 作为 Mac 应用程序(不是 IOS 或模拟器)。Xcode 版本 12.4 (12D4e)

好的,我已经尝试在接收器上完成阅读并尝试遵循建议(下面更新了 A 类),现在我发现它在 doNothing 函数中递归。看起来我缺少一些基本的东西 8-(

0 投票
1 回答
739 浏览

ios - SwiftUI如何在关闭时将数据传递到上一个屏幕

我想将关闭数据传递presentViewController到上一个屏幕。在这里,我想使用块将数据作为 UIKitApp 传递到上一个屏幕。但我不知道传递数据。我们options必须将数据传递回什么?

0 投票
1 回答
105 浏览

ios - 使用 Form swift UI 时不会调用文件导入器/文件移动器方法

即使 fileMover 中的绑定属性设置为 true。文件移动器没有被执行。下面是我使用的示例代码。任何线索都会有所帮助。提前致谢。

0 投票
1 回答
2115 浏览

swiftui - Swiftui 绑定动作试图每帧更新多次

我在调试来自文本字段的输入问题时遇到问题。

信息:
-MacOs Monterey Version 12.0 Beta 21A5284e
-Xcode 13.0 beta 3 13A5192j -
实体手机IOS 15.0 19A297e

问题说明:当我尝试输入绑定到视图模型的文本字段时,我收到错误消息:Swiftui 绑定操作尝试每帧更新多次。例如,当您尝试将其发送到 firebase 时,这将导致数据丢失。

你看到的数据:

Jhon
Do
119203940

您实际获得的数据:
Jho
D
119203

我使用的代码:

看法

视图模型

功能部分有点无关紧要,因为一旦您开始输入消息,消息就会开始显示在控制台中。为简单起见,我只是添加了一个新视图,其中只有一个具有相同结果的文本字段。

每当我将函数与@state 私有变量一起使用时,一切都很好。

我的期望
是,我希望将视图文本字段中填写的数据发送到 ViewModel 变量,以便我可以在函数中使用它来将数据发送到例如 firestore。

我是否做错了可能将值从另一个视图绑定到 ViewModel?我找不到有关此主题的任何内容或错误消息。

希望有人能告诉我在哪里看或下一步要检查什么。

问候,