- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的问题是 SwiftUI 中的 SecureField
根本不显示用户在任何时候输入的字符,它只是在输入每个字符时直接显示“•”符号 - 而在 UIKit 中, UITextField
(使用 isSecureTextEntry = true
)显示最新的字符一秒钟,然后将其隐藏在“•”后面。
我公司的用户体验测试人员要求我恢复“旧行为”——但这种行为似乎不是任何公共(public) API 的一部分。
有趣的是,这也适用于使用 UIViewRepresentable
注入(inject) SwiftUI 的 UITextField
自定义类 - 它们以上述“SwiftUI 方式”运行。所以在 SwiftUI 中针对所有安全 UITextField
行为进行了一些上下文行为修改?我必须将我的 SwiftUI 表单完全重写为完整的 UIViewController
才能恢复行为(模态推送的 UIViewControllers 和安全的 UITextFields do 表现出所需的行为。)
这是 SwiftUI 中的一种副业错误吗?我在 iOS13 和 14 中看到 SwiftUI 的情况相同。有人看到变通方法或解决方案吗?
-编辑-
在下面 @Asperi 的精彩解释之后,我注意到我使用 UIViewRepresentable
注入(inject)到 SwiftUI 中的 UITextField
自定义类通过在 中不必要地设置文本绑定(bind)来强制执行此行为>updateUIView
调用。使用协调器仅处理文本逻辑解决了我在使用此方法时遇到的问题。
最佳答案
观察到的效果是由于立即应用于绑定(bind)字符串状态和立即 react /重建 View 。
为了实现所需的行为,我们需要以某种方式推迟状态更新,从而让 SecuredField/UITextField 有机会在不与状态同步的情况下更新自身。
这是一个可能方向的演示(它不是理想的,但可以走的路)。使用 Xcode 12.1/iOS 14.1 测试。
struct DemoSecureFieldView: View {
@State private var password = "demo"
var textBinding: Binding<String> {
Binding(get: { password },
set: { value in
// more logic can be added to delay _only_ if new symbol added,
// and force apply if next symbol came fast
DispatchQueue.main.asyncAfter(deadline: .now() + 0.25) {
password = value
}
}
)
}
var body: some View {
VStack {
SecureField("Placeholder", text: textBinding)
.textFieldStyle(RoundedBorderTextFieldStyle())
.padding()
}.background(Color.pink)
}
}
关于SwiftUI 安全字段 : How to achieve the same character obscuring behaviour as in UIKit?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65111560/
你能举几个模糊的例子(代码片段)吗? 我读了JLS ,但我不明白这个概念。 JLS 没有给出代码示例。 隐藏在Base类和Derived类的字段之间。 阴影在字段和局部变量之间。 模糊 - 在什么 (
对于类似“射击场”的游戏,有些图像带有一个 onMouseOver 事件,该事件将显示一个十字线(跟随鼠标)和一个将隐藏它的 onMouseOut 事件。 但是,一旦十字准线可见,它就会覆盖下图,激活
拥有一个运行良好一段时间的应用程序。突然之间,它开始在产品服务器上的某行代码处抛出间歇性的“对象引用未设置...”错误。 我在 Visual Studio 中启动该应用程序并在有问题的代码行处使用断点
我有一个创建子窗口的简单 python curses 代码。但是,在运行函数 window.subwin() 的过程中失败并显示消息: 这里是一个测试用例: import curses if __na
我知道这是一个常见问题,UITableViewController 修复了这个问题,这是 iPhone SDK 3.0,但 UITableViewController 没有按我的预期工作,可能是由于我
我有一个 :before 伪,它在部分标题上创建了一个下划线,如下所示: .c-welcome__title > span:before { background: #98b680;
我的问题是 SwiftUI 中的 SecureField 根本不显示用户在任何时候输入的字符,它只是在输入每个字符时直接显示“•”符号 - 而在 UIKit 中, UITextField(使用 isS
我在尝试向我的 Mac 应用程序添加自定义 URL 支持时遇到一个奇怪的问题。我已经在 Info.plist 中定义了 URL,当我导航到它们时,我的应用程序将启动(或者,如果正在运行,则激活),但是
来自关于可见属性的 Qt 文档: This property holds whether the widget is visible. [...] A widget that happens to b
我有一个名为 Path 的类,在专用模块 Path.py 中为其定义了大约 10 个方法。最近我需要为 Path 编写另外 5 个方法,但是这些新方法相当晦涩且技术性强,而且 90% 的时间它们都是无
我在 Flex 3 项目中使用 iFrame。看起来不错。但是,如果浏览器窗口很小并且滚动条可见,那么我就会遇到问题。当用户向下滚动时,iFrame 会停留在浏览器顶部并覆盖内容。不幸的是,在这种情况
您将需要三个不同的文件:header.h、source.cpp 和 main.cpp。 // header.h #pragma once namespace A { namespace B {
我发现在我的架构中使用not时很难处理来自Ajv的错误消息。在我的用例中,我想验证两个 props 的值不同。考虑这个例子: schema.json { "$schema": "http://js
我正在为网页编写一个自动化测试用例。这是我的场景。我必须单击并输入 html 表单中的各种 Web 元素。但是,有时在文本字段上输入内容时,会出现一个ajax加载图像,使我想要交互的所有元素变得模糊。
尝试通过在 WM_NCHITTEST 下返回 HTCAPTION 来模拟基于客户区的窗口拖动(不包括 HTCLIENT 和适当的区域)在与父窗口一起使用时完美地工作 - 但是存在子窗口,例如选项卡占位
我正在尝试为 iOS 创建一个 3D 函数绘图仪。我已经成功地使用三角形带渲染了图形,并且还实现了通过线条绘制线框。但是,如果我使用 24 位(或 16 位无关紧要)深度缓冲区同时渲染两者,则线条会被
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
我是一名优秀的程序员,十分优秀!