2016-05-12 10 views
2

Swiftでは、最大INT値をUITextFieldに設定できますか?UITextFieldに最大整数値(文字数ではない)を設定する

私の場合、最大のint値を持つ必要のある5つのテキストフィールドがあります。これらの値の範囲は、500から10000までです。 5つの異なるテキストフィールドのそれぞれは異なる最大値を持ちます。インクリメントが1になるため、ピッカーやドロップダウンを使用することはできません。また、UISliderは数値を「スクラブイン」するのが難しくなります。

最大int型の値が5000であれば、ユーザーは(数字パッドのキーボードの種類に)任意のよりも高い5000

文字カウントは動作しません値を入力することはできません、最大値であれば理由500、私は3つの文字に設定されている場合、ユーザーは999

答えて

3

に入力できるテキストフィールド内の現在値は、指定した最大の整数値未満であるかどうかをチェックすることができます:

(あなたは可能性がありますこの時点でキーボードタイプを.NumberPadに変更して、ユーザーが数値だけを入力できるようにしたい)

textField.keyboardType = .NumberPad 

-

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { 
    let newText = NSString(string: textField.text!).stringByReplacingCharactersInRange(range, withString: string) 
    if newText.isEmpty { 
    return true 
    } 
    else if let intValue = Int(newText) where intValue <= self.maxValue { 
    return true 
    } 
    return false 
} 

私はあなたのためexample projectを作成しました。あなたはそれをダウンロードして遊ぶことができます。

+0

ありがとうございます!これは私が必要とすることをするようです。しかし、maxValueでプロパティオブザーバを使う利点は何ですか? – Joe

+0

最大値を5000から2000に減らし、テキスト入力の現在の値が3000であるとしましょう。すべてをクリアしてやり直す方が良いでしょう。 – ozgur

+0

私はそれについても考えていませんでした。完璧。ありがとうございました! – Joe

関連する問題