代码之家  ›  专栏  ›  技术社区  ›  mouni

如何使用swift3.0在uitextfield中设置最大4位数

  •  0
  • mouni  · 技术社区  · 8 年前

    我使用此代码,但它应该返回任何人。但我需要使用这两种场景。那么我该如何改变这一点呢?谁来帮帮我。我限制了一个0.0符号,同时只允许4位数字的数量。我如何做到这一点。???

       func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    
        guard let text = amountField.text else { return true }
        let newLength = text.characters.count + string.characters.count - range.length
        return newLength <= 4 // Bool
    
       let ACCEPTABLE_CHARACTERS = "1234567890"
        let cs = CharacterSet(charactersIn: ACCEPTABLE_CHARACTERS).inverted
        let filtered: String = string.components(separatedBy: cs).joined(separator: "")
        return string == filtered
    
    
    
    }
    
    1 回复  |  直到 8 年前
        1
  •  0
  •   Gienadij Mackiewicz    8 年前

    您的问题的可能解决方案。

    func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    
        var newLength = string.utf16.count - range.length
    
        if let text = textfield.text {
            newLength = text.utf16.count + string.utf16.count - range.length
        }
    
        let characterSet = NSMutableCharacterSet()
        characterSet.addCharacters(in: "1234567890")
    
        if string.rangeOfCharacter(from: characterSet.inverted) != nil || newLength > 4 {
            return false
        }
        return true
    }