2017-08-16 8 views
1

私は4つのTextFieldを設定し、textFieldDidChangeで接続しました。今私は間違った検証を入れて、私は再びTextFieldを選択し、すべての最後の入力をクリアできるようにしたいとしましょう。私はdidBeginEditingをSwift 3で試しましたが、1つだけをクリアするので動作しませんTextFieldTextFieldの4つではありません。助けてください。Swift 3でTextFieldを編集または選択すると、すべてのTextFieldを消去する方法は?

import UIKit 

class verificationVC: UIViewController,UITextFieldDelegate, UITextViewDelegate { 

    @IBOutlet weak var codefirstText: UITextField! 
    @IBOutlet weak var codesecondText: UITextField! 
    @IBOutlet weak var codethirdText: UITextField! 
    @IBOutlet weak var codefourthText: UITextField! 

    func textFieldDidBeginEditing(textField: UITextField) 
    { 
     codefirstText.text = "" 
     codesecondText.text = "" 
     codethirdText.text = "" 
     codefourthText.text = "" 

     if (codefirstText.text != nil) 
     { 
      codefirstText.text = "" 
      codesecondText.text = "" 
      codethirdText.text = "" 
      codefourthText.text = "" 
     } 
     else if (codesecondText.text != nil) 
     { 
      codefirstText.text = "" 
      codesecondText.text = "" 
      codethirdText.text = "" 
      codefourthText.text = "" 
     } 
     else if (codethirdText.text != nil) 
     { 
      codefirstText.text = "" 
      codesecondText.text = "" 
      codethirdText.text = "" 
      codefourthText.text = "" 
     } 
     else if (codefourthText.text != nil) 
     { 
      codefirstText.text = "" 
      codesecondText.text = "" 
      codethirdText.text = "" 
      codefourthText.text = "" 
     } 
    } 

    func textFieldDidChange (textfield: UITextField) 
    { 
     let text = textfield.text 

     if text?.utf16.count == 1 
     { 
      switch textfield { 
      case codefirstText: 
       codesecondText.becomeFirstResponder() 
      case codesecondText: 
       codethirdText.becomeFirstResponder() 
      case codethirdText: 
       codefourthText.becomeFirstResponder() 
      case codefourthText: 
       codefourthText.resignFirstResponder() 
      default: 
       break 
     } 
    } 
+0

は、あなたが '' self'にtextfield'デリゲートメソッドを設定しました:あなたの代わりにnil値の空の文字列をテキストフィールドの値をコントロールしようとしたんでした –

答えて

0

スウィフトでの入力の種類のため、文字列をnilにすることはできません。

func textFieldDidBeginEditing(textField: UITextField) 
    { 
     codefirstText.text = "" 
     codesecondText.text = "" 
     codethirdText.text = "" 
     codefourthText.text = "" 

     if (codefirstText.text != "") 
     { 
      codefirstText.text = "" 
      codesecondText.text = "" 
      codethirdText.text = "" 
      codefourthText.text = "" 
     } 
     else if (codesecondText.text != "") 
     { 
      codefirstText.text = "" 
      codesecondText.text = "" 
      codethirdText.text = "" 
      codefourthText.text = "" 
     } 
     else if (codethirdText.text != "") 
     { 
      codefirstText.text = "" 
      codesecondText.text = "" 
      codethirdText.text = "" 
      codefourthText.text = "" 
     } 
     else if (codefourthText.text != "") 
     { 
      codefirstText.text = "" 
      codesecondText.text = "" 
      codethirdText.text = "" 
      codefourthText.text = "" 
     } 

    } 
関連する問題