2016-10-14 16 views
0

こんにちは私はiphoneアプリケーションを作成しています。条件の1つは、ユーザーが自分の応答の最初の数字として「0」を入力できないはずです(UITextFieldをプレースホルダ値)正解は0IOS TextFieldがゼロでない場合

私がこれまで持っていることですが、それは私がまだ0を入力できますが、あなただけかどうかを確認する必要がある場合は100

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

    let leadingZero = textField.text?.rangeOfString("0") 
    let replacementZero = string.rangeOfString("0") 

    if leadingZero != nil && replacementZero != nil { 
     return false 
    } 


    return true 
} 
+0

あなたの問題は解決しますか、それともまだ問題がありますか? –

+0

私は提案された解決策を試しましたが、数字として0を入力したり、コードの他の部分を分解したりすることができます。ヒントは代表団の使用を言いました。 – snake123

+0

この問題のコードが必要ですか? –

答えて

0

が起こるべきことはできませんでない限り、 textFieldが空であれば0を入力することを拒否します。次の操作を実行できます。

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

    return (textField.hasText || string != "0") ? true : false 
} 

hasTextはプレースホルダテキストを無視するため、問題は発生しません。

1

ターゲットの

myTextField.addTarget(self, action: #selector(textfieldDidChange), for: .editingChanged) 

Definationテキストフィールドにターゲットを追加correctAnswer変数

//make it true or false depending whether your correct answer is zero 
var correctAnswerIsZero = false 

を取る

func textfieldDidChange(textfield:UITextField) { 
    if correctAnswerIsZero { 
    } else { 
     //if correct answer is not zero 
     if textfield.text?.characters.first == "0" { 
      print("You have entered 0, so deleting it") 
      textfield.text = "" 
     } 
    } 
} 
0

//作成したTextFieldアクションメソッドの編集は変更さ

@IBAction func TextfieldCheck(sender: AnyObject) { 
    if YOURTEXTFIELD.text?.characters.count > 0 { 
     let str : String = YOURTEXTFIELD.text! 
     if str.characters.count < 3 { 
      if str .containsString("0") 
      { 
       YOURTEXTFIELD.text = "" 
      } 
     } 
    } 
} 

あなたの問題は今解決されます。私のこのコードに問題がある場合は教えてください

関連する問題