设置文本字段的最大数值

时间:2016-07-05 00:00:56

标签: xcode swift uitextfield

我正在制作一个应用,让学生在特定的文字字段中输入成绩。我希望他们输入0到100之间的数字。我只是想知道如何为文本字段设置最大NUMBER值。

我假设我应该采取某种行动,但我不确定要使用哪种行动类型或设定最大值的代码。

任何帮助都会非常感激:) !!

3 个答案:

答案 0 :(得分:1)

如果您想要提供有限数量的固定答案,可以使用UIPickerView:http://sourcefreeze.com/ios-uipickerview-example-using-swift/。但是如果你想让它们在文本框中输入,你可以在textFieldDidEndEditing方法中验证输入,如下所示:

func textFieldDidEndEditing(textField: UITextField) {
   if textField.text.toInt() < 0 || textfield.text.toInt() > 100 {
      //Here you can present an alert, change the input or clear the field.
   }
}

答案 1 :(得分:0)

另一种方法是在负数时将得分设为0,在用户输入超过100的数字时使得得分为100.这允许您输入分数得分,如72.5:

class ViewController: UIViewController, UITextFieldDelegate {
    @IBOutlet weak var textField: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()
        self.textField.delegate = self
    }

    func textFieldShouldEndEditing(textField: UITextField) -> Bool {
        // Make sure the user entered a number
        guard let score = Double(textField.text!) else {
            let alert = UIAlertController(title: "Invalid Score", message: "Score must be a number from 0 to 100", preferredStyle: .Alert)
            alert.addAction(UIAlertAction(title: "OK", style: .Default, handler: nil))
            self.presentViewController(alert, animated: true, completion: nil)
            return false
        }

        if score < 0 {
            textField.text = "0"
        } else if score > 100 {
            textField.text = "100"
        }
        return true
    }
}

答案 2 :(得分:0)

internal func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {



    if ((self.inputTextField?.text)!.characters.count > 10 && range.length == 0)

    {
        return false
        //return false // return NO to not change text
    }else{

        return true

    }

}

注意:导入文本字段UITextFieldDelegat。