Пользователь не должен иметь возможность удалить данный символ в текстовом поле, которое является текстом.

введите здесь описание изображения

func textField (textField: UITextField, shouldChangeCharactersInRange range: NSRange, replaceString string: String) -> Bool {return true}

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


person Krishna Kumar Thakur    schedule 04.05.2016    source источник
comment
почему бы не переместить его из текстового поля? если нет, то что вы пробовали - показать код - и что пошло не так?   -  person Wain    schedule 04.05.2016
comment
Я не могу переместить этот символ из текстового поля, и я ничего для этого не сделал. Кроме этого if (string.characters.count == 1) {if currencyDetail! = {Amount.text = currencyDetail} return false}   -  person Krishna Kumar Thakur    schedule 04.05.2016


Ответы (1)


Поскольку наиболее вероятный сценарий заключается в том, что символ евро всегда будет в текстовом поле и будет первым символом, я бы проверил, превышает ли диапазон изменяемых символов 0 и начинается ли он с 0. (Это будет работать независимо от символа. в первой позиции)

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
    if range.length>0  && range.location == 0 {
            return false
    }
    return true
}

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

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
    if range.length>0  && range.location == 0 {
        let changedText = NSString(string: textField.text!).substringWithRange(range)
        if changedText.containsString("€") {
            return false
        }
    }
    return true
}
person Craig Grummitt    schedule 04.05.2016
comment
Большое спасибо, Крейг, твое решение у меня работает. и мне нравится, как вы объяснили это обоими способами. - person Krishna Kumar Thakur; 06.05.2016