Как справиться с долгим нажатием на клавишу возврата на клавиатуре? - PullRequest
0 голосов
/ 27 февраля 2020

Когда я долго нажимаю на кнопку возврата по умолчанию на клавиатуре, иногда она удаляет весь текст, есть ли способ очистить только один за другим

Ответы [ 2 ]

0 голосов
/ 27 февраля 2020

Реализация UITextFieldDelegate's textField(_:shouldChangeCharactersIn:replacementString:) метод, подобный так,

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    if string.isEmpty {
        textField.text?.removeLast()
        return false
    }
    return true
}
0 голосов
/ 27 февраля 2020

Вы можете справиться с этим, используя метод делегата textField shouldChangeCharactersIn следующим образом:

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    if string.isEmpty {
        if range.length != 1 {
            if let val: String = textField.text {
                if !val.isEmpty {
                    let newStr: NSString = val as NSString
                    if newStr.length > 0 {
                        let updatedString: String = newStr.substring(to: newStr.length - 1)
                        textField.text = updatedString
                    }
                }
            }

            return false
        }
    }

    return true
}
...