#uitextfield #swift4.2
#uitextfield #swift4.2
Вопрос:
Я хочу, чтобы пользователь вводил текст в текстовое поле, и если пользователь вводит «<«, к тексту в поле должен быть автоматически добавлен пробел
Я попытался удалить специальный символ, но мне нужно, чтобы пользователь также вводил его.
let RISTRICTED_CHARACTERS = "<"
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let set = CharacterSet(charactersIn: RISTRICTED_CHARACTERS)
let inverted = set.inverted
let filtered = string.components(separatedBy: inverted).joined(separator: "")
if filtered == string amp;amp; string != "" {
return false
} else {
let maxLength = maxLenghtOfTextField
let currentString: NSString = textField.text! as NSString
let newString: NSString = currentString.replacingCharacters(in: range, with: string) as NSString
return newString.length <= maxLength
}
В этом коде я не разрешаю «<» этот символ. Я хочу, чтобы текстовое поле было таким.
Мой вывод должен быть : hello <(space) world
. Пробел должен быть добавлен автоматически, если я начинаю со знака «<«.
Комментарии:
1. Пожалуйста, отредактируйте, чтобы четко сформулировать свой вопрос. Неясно, какое отношение заголовок имеет к ситуации, которую вы представляете, или в чем проблема, и это делает вероятным, что ваш вопрос будет отложен из-за неясности.
Ответ №1:
Вместо .replacingCharacters, возможно, попробуйте .replacingOccurences
let updatedString: String? = textField.text.replacingOccurrences(of: "<", with: " ")