【问题标题】:Hide password with "•••••••" in a textField在文本字段中使用“•••••••”隐藏密码
【发布时间】:2014-11-21 17:53:34
【问题描述】:

在我的应用程序中有一个文本字段,用户必须在其中输入密码,我希望当他输入一个字符时将其更改为“•”我该怎么做?

【问题讨论】:

    标签: swift passwords


    【解决方案1】:

    对于 SwiftUI,请尝试

    TextField ("Email", text: $email)
        .textFieldStyle(RoundedBorderTextFieldStyle()).padding()
    SecureField ("Password", text: $password)
        .textFieldStyle(RoundedBorderTextFieldStyle()).padding()
    

    【讨论】:

      【解决方案2】:

      以编程方式(Swift 4 和 5)

      self.passwordTextField.isSecureTextEntry = true
      

      【讨论】:

      • 对于 swift 3 及更高版本的语法已更改,请参阅上面的答案。
      • 我的答案是 Swift 4
      • 你确定这是 Swift 4 吗? textField 没有名为 secure 的属性或方法...对于 swift 4,我们使用 self.passwordTextField.isSecureTextEntry = true
      【解决方案3】:

      您可以通过使用属性检查器中文本字段的属性来做到这一点

      从情节提要中点击您的文本字段并转到属性检查器,然后选中“安全文本输入”复选框SS is added for graphical overview to achieve same

      【讨论】:

        【解决方案4】:

        Swift 4 和 Xcode 版本 9+

        可以通过 Interface Builder 的“安全文本输入”进行设置

        【讨论】:

        • 嗨,有时安全文本字段会以黄色突出显示“强密码”错误,有什么解决办法吗?
        • @Saravanan 如果您不自动生成密码,请将内容类型 Password 更改为 defualt 或其他选项
        【解决方案5】:

        在 Swift 3.0 或更高版本中

        passwordTextField.isSecureTextEntry = true
        

        【讨论】:

          【解决方案6】:

          你可以直接在 Xcode 中实现:

          最后一个复选框,确保选中secure

          或者你可以使用代码来实现:

          标识文本对象是否应该隐藏正在输入的文本。

          声明

          optional var secureTextEntry: Bool { get set }
          

          讨论

          此属性默认设置为false。将此属性设置为 true 会创建一个密码样式的文本对象,它会隐藏正在输入的文本。

          示例:

          texfield.secureTextEntry = true
          

          【讨论】:

          • 在New XCode8及以上版本我们必须在runtime属性列中添加secureTextEntry
          【解决方案7】:

          在 XCode 6.3.1 中,如果您使用 NSTextField,您将看不到 secure 的复选框。

          不要使用NSTextField,而是使用NSSecureTextField

          https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSSecureTextField_Class/index.html

          我猜这是 Swift/Objective-C 的变化,因为现在有一个用于安全文本字段的类。在上面的链接中它写着Available in OS X v10.0 and later. 如果你知道更多关于何时/为什么/什么版本的 Swift/Objective-C、XCode 或 OS X 这个

          【讨论】:

          • 对于MacOS开发,这是新的正确答案
          猜你喜欢
          • 1970-01-01
          • 2013-12-28
          • 2018-05-29
          • 1970-01-01
          • 1970-01-01
          • 2019-09-10
          • 2015-01-05
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多