我正在制作一个应用,让学生在特定的文字字段中输入成绩。我希望他们输入0到100之间的数字。我只是想知道如何为文本字段设置最大NUMBER值。
我假设我应该采取某种行动,但我不确定要使用哪种行动类型或设定最大值的代码。
任何帮助都会非常感激:) !!
答案 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。