簡體   English   中英

如何使用swift3.0在uitextfield中設置最大4位數字

[英]how to set the maximum 4 digit number in uitextfield using swift3.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



}

您問題的可能解決方案。

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
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM