Скрыть пароль с помощью «•••••••» в текстовом поле


132

В моем приложении есть текстовое поле, в которое пользователь должен ввести пароль, и я хочу, чтобы, когда он вводил символ, он менял его на «•», как я могу это сделать?

Ответы:


302

Вы можете добиться этого прямо в Xcode:

введите описание изображения здесь

Убедитесь, что установлен последний флажок secure.

Или вы можете сделать это с помощью кода:

Определяет, должен ли текстовый объект скрывать вводимый текст.

декларация

optional var secureTextEntry: Bool { get set }

обсуждение

Это свойство установлено falseпо умолчанию. Установка этого свойства в значение trueсоздает текстовый объект в стиле пароля, который скрывает вводимый текст.

пример:

texfield.secureTextEntry = true

1
В New XCode8 и выше мы должны добавить secureTextEntry в столбец атрибутов времени выполнения
Балагурубаран


13

В 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 это новый правильный ответ
Джозеф ДеКарло,

12

Swift 4 и Xcode версии 9+

Может быть установлен через «Безопасный ввод текста» через Interface Builder

Безопасный ввод текста проверяется с помощью снимка экрана раскадровки


Привет, Иногда безопасное текстовое поле выделяется желтым цветом с текстом «Ошибка надежного пароля». Есть ли какое-нибудь решение?
Сараванан

1

Для SwiftUI попробуйте

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

0

Вы можете сделать это, используя свойства текстового поля из инспектора атрибутов.

Нажмите на свое текстовое поле в раскадровке и перейдите в Инспектор атрибутов, и просто установите флажок «Безопасный ввод текста». SS добавлен для графического обзора, чтобы добиться того же.


-1

Программно (Swift 4 и 5)

self.passwordTextField.isSecureTextEntry = true

1
Для swift 3 и более поздних версий синтаксис был изменен, см. Ответы выше.
mojtaba al moussawi

Мой ответ для Swift 4
Арунабх Дас

2
Вы уверены, что это Swift 4? Не существует свойства или метода с именем secure для textField ... для swift 4 мы используем self.passwordTextField.isSecureTextEntry = true
mojtaba al moussawi
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.