在文本框中使用“•••••••”隐藏密码

158

我的应用中有一个文本框,用户必须输入密码,我希望当他输入字符时,它可以被替换为 '•',我该怎么做?

7个回答

335

您可以在Xcode中直接实现此操作:

enter image description here

勾选最后一个复选框,确保secure被勾选。

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

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

声明

optional var secureTextEntry: Bool { get set }

讨论

默认情况下,此属性设置为false。将此属性设置为true会创建一个密码风格的文本对象,隐藏正在输入的文本。

示例:

texfield.secureTextEntry = true

1
在新的XCode8及以上版本中,我们必须在运行时属性列中添加secureTextEntry。 - Balagurubaran

67

在Swift 3.0或更高版本中

passwordTextField.isSecureTextEntry = true

17

Swift 4和Xcode版本9+

可以通过Interface Builder中的"Secure Text Entry"进行设置

通过故事板截图勾选安全文本输入


有时候安全文本框会突出显示黄色,并显示“强密码”错误,是否有解决方案? - Saravanan
@Saravanan,如果您不使用自动生成的密码,请将内容类型从“密码”更改为“默认”或其他选项。 - Nandkishor mewara

13
在Xcode 6.3.1中,如果您使用NSTextField,则不会看到secure的复选框。请改用NSSecureTextFieldhttps://developer.apple.com/documentation/appkit/nssecuretextfield 我猜这是Swift/Objective-C的变化,因为现在有了安全文本字段类。 在上面的链接中,它说:"Available in OS X v10.0 and later." 如果您更多地了解关于何时/为什么/哪个版本的Swift/Objective-C、Xcode或OS X,请分享一下。

对于MacOS开发,这是新的正确答案。 - Joseph DeCarlo

6

对于SwiftUI,请尝试

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

2

使用编程方式(Swift 4和5)

self.passwordTextField.isSecureTextEntry = true

1
对于Swift 3及更高版本,语法已更改,请参考上面的答案。 - mojtaba al moussawi
我的答案是针对Swift 4的。 - Arunabh Das
2
你确定这是Swift 4吗?textField中没有名为secure的属性或方法...在Swift 4中,我们使用self.passwordTextField.isSecureTextEntry = true。 - mojtaba al moussawi

0

您可以通过使用属性检查器中的文本字段属性来实现此操作

从Storyboard中选择您的文本字段,进入属性检查器,然后勾选“安全输入”复选框SS添加了图形概述以实现相同效果


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接