укажите максимальное значение для UITextField в Swift

#swift

#swift

Вопрос:

Мне нужно указать максимальное значение для текстового поля. Я уже получил ответ из другого сообщения о том, как ограничить UITextField только числами. Но я хотел бы изменить эту функцию, чтобы она принимала только число от 0 до 540.

Есть ли какой-либо способ изменить эту функцию?

 func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
  let s = NSString(string: textField.text ?? "").replacingCharacters(in: range, with: string)
  guard !s.isEmpty else { return true }
  let numberFormatter = NumberFormatter()
  numberFormatter.numberStyle = .none
  return numberFormatter.number(from: s)?.intValue != nil
}
  

Ответ №1:

     func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    print(string)
    let myRange = 0...540
    
    //ro delete/remove values in textField
    if string == "" {
        return true
    }

    let fullText = NSString(string: textField.text ?? "").replacingCharacters(in: range, with: string)
    
    if let wholeNumber = Int(fullText), myRange.contains(wholeNumber) {
        return true
    }
    
    return false
}
  

Ответ №2:

Вы можете проверить, находится ли число между 0 и 540.

 if let number = numberFormatter.number(from: s)?.intValue {
 return number > 0 amp;amp; number < 540  
} else {
 return true 
}