Потратив время на отладку, я понял, что UITextField добавляет пробелы в мои строки, вставленные из буфера обмена.
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
var input: String
let newString = string.trimmingCharacters(in: .whitespacesAndNewlines) // newString = "123"
if let oldString = textField.text { // oldString = "456"
input = oldString
input.insert(contentsOf: newString, at: input.index(input.startIndex, offsetBy: range.location)) // rang.location = 2, input = "4 123 56" but it supposed to be "412356"
} else {
input = newString
}
return true
}
У меня есть два вопроса:
1- Почему это происходит только при вставке в секунду и больше раз?
2- Как мне избежать добавления этих пробелов в мои вставленные строки?