Кнопка «Готово» не работает при ограничении символов для UITextField - PullRequest
0 голосов
/ 04 апреля 2019

Я использую приведенный ниже код, чтобы запретить пользователям использовать только определенные символы для UITextField. Допустимые символы находятся внутри строки расширения. Это работает хорошо, но проблема, с которой я сталкиваюсь, заключается в том, что пользователи не могут нажать кнопку «Готово» и запустить мой код.

Я новичок в Swift и переполнении стека. Понятия не имею, что делать.

extension String {

    var containsValidCharacter: Bool {
        let characterSet = CharacterSet(charactersIn: "1234567890 -")
        let range = (self as NSString).rangeOfCharacter(from: characterSet)
        return range.location != NSNotFound
    }
}


func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    return string.containsValidCharacter
}

Я просто хочу, чтобы кнопка " done " работала.

1 Ответ

0 голосов
/ 04 апреля 2019

Попробуйте переопределить этот UITextFieldDelegate метод.

func textFieldShouldReturn(_ textField: UITextField) -> Bool{
    return true    
}

Документация

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...