用户不应该删除文本字段中的给定符号

时间:2016-05-04 14:00:33

标签: swift character textfield restrict

enter image description here

func textField(textField:UITextField,shouldChangeCharactersInRange range:NSRange,replacementString string:String) - >布尔     { 返回true }

我必须限制用户在swift中从textfield中删除此符号。用户可以删除文本字段中的任何内容而不删除此符号。

1 个答案:

答案 0 :(得分: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
}

但是,如果欧元符号并不总是在文本字段中,您可以通过获取用户正在更改的字符串的引用并检查其是否包含欧元符号来检查用户是否正在删除此符号: / p>

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
}