title: How to jump to next UITextField when editing has finished?
body: <p>I want to inspect my current UITextField and jump to the next one in case that editing has finished.</p>
  
  <p>So far I have this code implemented, but for some reason is not working.</p>
  
  <p><strong>IMPORTANT:</strong> The code that actually work as expected is Robert approach, see it below. I couldn't vote for him since my reputation is low.</p>
  
  <p><strong>NEW ADDED:</strong> I am using this to limit to ONE character</p>
  
  <pre><code>    //Limit the length of the UITextfields
  func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -&gt; Bool {
      guard let text = textField.text else { return true }
      let newLength = text.characters.count + string.characters.count - range.length
  
      print("textField...shouldChangeCharactersInRange method called")
  
      switch textField {
      case rateTvA:
  
          return newLength &lt;= limitLength
  
      case rateTvB:
  
          return newLength &lt;= limitLength
  
      case rateTvC:
          return newLength &lt;= limitLength
  
          // Do not put constraints on any other text field in this view
          // that uses this class as its delegate.
      default:
          return true
      }
  
  }
  </code></pre>
  
  <p>NOTE: I am expecting to receive just ONE single character for each UITextField</p>
  
  <pre><code>    func textFieldShouldEndEditing(textField: UITextField) -&gt; Bool {
      let charCount = textField.text!.characters.count
      print("textFieldShouldEndEditing method called")
      print("How many characters has been typed in? \(charCount)")
  
      switch textField {
      case rateTvA:
          if(charCount &gt; 0) {
              rateTvB.becomeFirstResponder()
              return true
          }
      case rateTvB:
          if(charCount &gt; 0) {
              rateTvC.becomeFirstResponder()
              return true
          }
      case rateTvC:
          if(charCount &gt; 0) {
              rateTVD.becomeFirstResponder()
              return true
          }
      default:
          return false
      }
      return false
  }
  </code></pre>