【发布时间】:2020-12-02 15:53:16
【问题描述】:
我的问题是 SwiftUI 中的 SecureField 在任何时候都不会显示用户输入的字符,它只是在输入每个字符时直接显示“•”符号 - 而在 UIKit 中,UITextField ( with isSecureTextEntry = true) 显示最新的字符一秒钟,然后将其隐藏在“•”后面。
我公司的 UX 测试人员要求我恢复“旧行为” - 但这种行为似乎不是任何公共 API 的一部分。
有趣的是,这也适用于使用 UIViewRepresentable 注入 SwiftUI 的 UITextField 自定义类 - 它们以上述“SwiftUI 方式”运行。那么在 SwiftUI 中针对所有安全的UITextField 行为进行了一些上下文行为修改?我必须将我的 SwiftUI 表单完全重写为完整的 UIViewController 才能恢复行为(以模式推送 UIViewControllers with secure UITextFields do 表现出所需的行为。)
这是 SwiftUI 中的一种副业错误吗?我在 iOS13 和 14 中看到 SwiftUI 的情况相同。有人看到解决方法或解决方案吗?
-编辑-
在下面@Asperi 的精彩解释之后,我注意到我使用UIViewRepresentable 注入到SwiftUI 中的UITextField 自定义类通过在updateUIView 调用中不必要地设置文本绑定来强制这种行为。使用协调器仅处理文本逻辑为我解决了使用此方法时的问题。
【问题讨论】:
标签: swiftui uitextfield