2017-08-15 7 views
1

4つのUITextFieldがあります。 1文字を入力した後、nextを押すことなく、次のUITextFieldが自動的に有効になります。UITextField、Swift 2を使用して自動的に1文字後に次へ移動

私は

任意のアイデアスウィフト2を使用していますか?

+0

'resignFirstResponder'、あなたが –

+0

アクティブにしたいTextFieldに' becomeFirstResponder'を使用します拡張された構文 – Fabien

答えて

0

次のtextFieldを選択するには、最初のResponderを割り当てる必要があります。 textFieldのデリゲートメソッドを使用して、テキストフィールドがいつアクティブになるべきかを判断できます。

0

最初にUITextFieldごとに異なるタグを設定します。次にUIControlEvents.editingChangedメソッドを追加します。あなたは@IBOutlet sおよびあなたのXIBファイルと@IBAction Sを接続すると

、あなたのような何かのようなものを得るでしょう:currentTextFieldため

class ViewController: UIViewController { 

     @IBOutlet weak var textField1: UITextField! 
     @IBOutlet weak var textField2: UITextField! 
     @IBOutlet weak var textField3: UITextField! 
     @IBOutlet weak var textField4: UITextField! 

     @IBAction func textChanged(_ sender: UITextField) { 
      if sender.hasText { 
      switch sender { 
      case textField1: 
       textField2.becomeFirstResponder() 
      case textField2: 
       textField3.becomeFirstResponder() 
      case textField3: 
       textField4.becomeFirstResponder() 
      default: 
       sender.resignFirstResponder() 
      } 
      } 
     } 

    } 
+0

それらのすべてが同じアクションに接続されている場合は、タグを付ける必要はありません。ただ 'switch sender'と' case textField1: ' –

+1

@LeoDabusあなたの権利をチェックしてください。私は自分の答えを更新しました。 – krlb

+0

あなたは 'if sender.hasText'を確認することもできます –

関連する問題