我发现,当**一个TextField
和两个SecureField
**在视图中时,iOS会在获得焦点后立即自动使用建议的强密码填充两个SecureField。当没有TextField
或只有一个SecureField
时,它不会复制。好奇怪的行为!
有谁知道为什么会发生这种情况,以及如何避免自动填充?我发现如果我将键盘类型(如numberPad
)设置为SecureField,则不会发生这种情况,但我希望它们是密码字段,这不是一个选项。
仅供参考:我正在使用Firebase动态链接与自定义域和关联域在应用程序中配置,这使密码自动填充。
struct ExperimentView: View {
@State private var text1: String = ""
@State private var text2: String = ""
@State private var text3: String = ""
var body: some View {
VStack {
TextField("", text: $text1)
.textFieldStyle(.roundedBorder)
SecureField("", text: $text2)
.textFieldStyle(.roundedBorder)
SecureField("", text: $text3)
.textFieldStyle(.roundedBorder)
}
.padding()
}
}
1条答案
按热度按时间bweufnob1#
您遇到的问题可能是由于iOS密码自动填充功能导致的,该功能会自动为安全字段建议强密码。
要避免在
SecureFields
中自动填写密码,您可以尝试以下操作:您可以使用disableAutocorrection(_:Bool)修饰符沿着UITextInputTraits扩展以防止自动填充。示例:
正如您所提到的,将键盘类型设置为默认密码字段以外的其他类型也可能会阻止自动填充行为。但是,由于您希望这些字段用作密码字段,因此这可能不适合您。
让我知道如果它帮助!!如果是,请通过投票留下您的意见!^^