2017-12-13 15 views
0

이 코드를 사용하지만 누구에게나 반환해야합니다. 하지만이 두 시나리오를 사용해야합니다. 그럼 내가 어떻게 바꿀 수 있니? 누구든지 나를 도와주세요. 나는 (0.0 기호를 제한하고 동시에 단지 내가이 작업을 수행 할 수있는 방법. 4 자리의 양을 허용했다. ??? 문제에 대한swift3.0을 사용하여 uitextfield에서 최대 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 



} 

답변

0

가능한 솔루션을.

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 
} 
+1

감사합니다 .. @ Gienadij Mackiewicz – mouni