生徒が特定のテキストフィールドに成績を入力するアプリを作っています。 0から100までの数字を入力して欲しいです。私はテキストフィールドに最大NUMBERの値を設定する方法は不思議でした。テキストフィールドの最大数値を設定する
私はいくつかのタイプのアクションを実行するはずですが、使用するアクションタイプや最大値を設定するコードが不明です。
ご協力いただけると幸いです。
生徒が特定のテキストフィールドに成績を入力するアプリを作っています。 0から100までの数字を入力して欲しいです。私はテキストフィールドに最大NUMBERの値を設定する方法は不思議でした。テキストフィールドの最大数値を設定する
私はいくつかのタイプのアクションを実行するはずですが、使用するアクションタイプや最大値を設定するコードが不明です。
ご協力いただけると幸いです。
UIPickerViewは、固定回答の数を限定して提示する場合に使用できます。。しかし、あなたがそれらをテキストボックスに入力したい場合、あなたはそのよう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.
}
}
代替は、ユーザーがより多くの何かを入力したときにスコア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
}
}
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。
0から100までの値を持つUIPickerViewを使うことができます。 – vacawama
@vacawama私はすばらしいとxcodeに新しいですが、私は本当にUIPickerViewの使い方を知らない –