Первая буква текстового поля всегда показывает строчные буквы в swift - PullRequest
0 голосов
/ 09 февраля 2019

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

func textField(_ textFieldToChange: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    signUpEmailTextField.autocapitalizationType = .none
}

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

Ответы [ 2 ]

0 голосов
/ 09 февраля 2019

Простое решение - добавить цель для изменения текста и обновить текст в нижнем регистре:

override func viewDidLoad() {
    super.viewDidLoad()

    signUpEmailTextField.addTarget(self, action: #selector(textFieldChanged), for: .editingChanged)
}

@objc func textFieldChanged() {
    signUpEmailTextField.text = signUpEmailTextField.text?.lowercased()
}
0 голосов
/ 09 февраля 2019

с помощью uppercased() вы можете достичь этого

, вы также можете проверить условие, если у вас есть несколько текстовых полей и вы не хотите, чтобы они были в верхнем регистре во всех текстовых полях

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    if let text = textField.text,
        let range = Range.init(range, in: text) {

        let newText = text.replacingCharacters(in: range, with: string).uppercased()
       textField.text =  newText
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...