Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将PasswordField设置为secureTextEntry会给我一种奇怪的行为_Ios_Swift - Fatal编程技术网

Ios 将PasswordField设置为secureTextEntry会给我一种奇怪的行为

Ios 将PasswordField设置为secureTextEntry会给我一种奇怪的行为,ios,swift,Ios,Swift,我有一个passwordField,我将它的issecurettententry设置为true以隐藏字符。但是,当我单击此密码字段时,日志中会出现以下错误: [AutoFill]无法显示应用程序bundleID:“myapp”的自动强密码,原因是错误:iCloud Keychain已禁用 键盘会自动从azerty变为qwerty 如果删除passwordField.issecurettentry=true,问题就会消失,但字符不会隐藏 这是我的密码: passwordField.borderSt

我有一个
passwordField
,我将它的
issecurettententry
设置为
true
以隐藏字符。但是,当我单击此
密码字段时,日志中会出现以下错误:

[AutoFill]无法显示应用程序bundleID:“myapp”的自动强密码,原因是错误:iCloud Keychain已禁用

键盘会自动从azerty变为qwerty

如果删除
passwordField.issecurettentry=true
,问题就会消失,但字符不会隐藏

这是我的密码:

passwordField.borderStyle = UITextField.BorderStyle.none
passwordField.font = UIFont(name: "Avenir-Heavy", size: 13)
passwordField.autocorrectionType = UITextAutocorrectionType.no
passwordField.clearButtonMode = UITextField.ViewMode.whileEditing
passwordField.keyboardType = UIKeyboardType.default
passwordField.returnKeyType = UIReturnKeyType.done
passwordField.contentVerticalAlignment = UIControl.ContentVerticalAlignment.bottom
passwordField.isSecureTextEntry = true
我试过了,但没什么变化

如果没有iCloud钥匙链和将键盘更改为qwerty,我如何隐藏文本字段的字符?


我检查了其他答案,但没有什么与我的问题类似…

您可能在关联文件中使用了错误的团队ID。团队ID不是XCode上“签名证书”下使用的团队ID。要查看您的团队ID,请转到您的帐户,在“会员资格”下。 这应该可以解决问题。我使用了错误的团队ID,遇到了同样的问题


使用上面的修复方法,只需遵循以下步骤:

在我们的例子中,在同一屏幕上有另一个文本字段,内容类型为
电子邮件地址
,将其更改为
用户名
,神奇地解决了问题。

当系统用户没有启用iCloud钥匙链时,就会发生这种情况。就像模拟器上经常出现的情况一样:)

我在模拟器上碰到这个,然后来到这里。在我的手机上试用过(iCloud Keychain已启用),但得到了以下结果:

[AutoFill]无法显示应用程序绑定ID的自动强密码: 您的.bundle.id出现错误:无法保存此应用的密码。制作 确保已为应用和自动填充设置关联域 密码已在“设置”中启用


这就是苹果酷酷的自动填充功能。这里描述了一些应该启用该功能的步骤。

我在模拟器上运行应用程序时遇到了相同的问题。 将“自动更正”设置为“否”解决了我的问题。 我希望它能帮助你

textFieldPassword.autocorrectionType = .no

自动强密码:-启用iCloud钥匙链


如果用户在其iPhone中启用了iCloud钥匙链,则自动强密码建议会起作用

我通过以下步骤得以解决:-

  • 去布景
  • 点击用户名(苹果Id)
  • 点击iCloud
  • 轻敲钥匙链
  • 启用iCloud密钥链

在我的例子中:我有4个字段(用户名-电子邮件传递-确认传递),当用户点击密码或确认密码字段时,键盘返回该错误并显示强烈的密码建议,不允许更改密码字段文本


解决方案:我将所有字段内容类型更改为(一次性代码),只需在密码和确认密码字段中设置(Secure Text Entry=true)。

我借用了上面@Hamid Reza Ansari的答案,但还必须支持较旧的iOS版本,因此将其包装在一个条件中:

if #available(iOS 12.0, *) {
    self.textContentType = .oneTimeCode
}

您可以忽略警告(或在设备上启用iCloud钥匙链)。我认为QWERTY键盘问题是一个问题,您所说的是正确的,但我认为它与
错误没有任何关系:iCloud Keychain被禁用
消息。这是问题的正确答案。问题中的错误消息与设备是否启用了iCloud钥匙链有关。与代码无关。很好的答案@DarreniCloud Keychain已启用,但仍然出现了此错误。我认为这是因为
UITextContentType.username
UITextContentType.newPassword
是AutoFill启发式的一部分。如果你的应用程序使用电子邮件作为用户名,那么苹果建议将文本字段的
textContentType
设置为
.username
,将
keyboardType
属性设置为
。emailAddress
。请参阅:在添加:field.textContentType=.none之后,这对我很有效