【问题标题】:iOS 8 - username UITextField secures entry when becoming first responder AFTER the password text fieldiOS 8 - 用户名 UITextField 在密码文本字段后成为第一响应者时保护输入
【发布时间】:2014-12-14 21:57:46
【问题描述】:

我遇到了一个经典配置问题:用户名/密码文本字段。 没什么特别的,只有 2 个 UITextField,其中一个勾选了“安全文本输入”,就是这样。

当我点击用户名文本字段时,这是正常的。 然后我点击密码文本字段,文本是安全的(大点)。 当我再次点击用户名文本字段时,两个文本字段的文本都是安全的!

如果我在再次点击用户名密码之前点击密码文本字段之外,文本仍然是安全的。 但是,如果在那之后,我在用户名文本字段之外点击,然后再次在用户名文本字段上点击,则文本不安全。 另外,如果我在安全的情况下更改用户名文本字段的文本,它会再次变得正常。

错误出现在 iOS8(不是 iOS7)上。

有什么想法吗? 谢谢!

【问题讨论】:

  • 您是否在任何地方设置代码中的安全文本条目?
  • 不,只是使用xib文件中的复选框
  • 我遇到了同样令人沮丧的错误。我开始想,这可能是一个 iOS8 错误
  • 分享您的代码。如果没有看到您的代码,我们无法找出问题所在。

标签: ios uitextfield


【解决方案1】:

我的同事补充说,它奏效了

-(void)textFieldDidBeginEditing:(UITextField *)textField
{
    if (textField == self.usernameText)
    {
        self.usernameText.secureTextEntry = YES;
        self.usernameText.secureTextEntry = NO;
    }
}

【讨论】:

    【解决方案2】:

    仅当您的用户名和密码文本字段中的文本相同时才会发生这种情况。这是一个 iOS8 错误,但由于这很可能永远不会在“现实世界”场景中发生,所以还不错(尽管仍然有很多错误)。 一旦用户名不再与密码匹配,它就会像在 iOS7 中一样工作。

    希望对你有所帮助

    【讨论】:

      【解决方案3】:

      用户名TextField.tag = 0; passwordTextField.tag = 1;

      -(void)textFieldDidBeginEditing:(UITextField *)textField
      {
          switch(textField.tag) {
              case 0:
              textField.secureTextEntry = NO;
              break;
              case 1:
              textField.secureTextEntry = YES;
              break;
              default:
              break;
          }
      }
      

      这也可能有帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-26
        相关资源
        最近更新 更多