如何以编程方式在swift ios中自动将光标从一个文本字段移动到另一个文本字段?

前端之家收集整理的这篇文章主要介绍了如何以编程方式在swift ios中自动将光标从一个文本字段移动到另一个文本字段?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. func textFieldDidBeginEditing(textField: UITextField) {
  2. scrlView.setContentOffset(CGPointMake(0,textField.frame.origin.y-70),animated: true)
  3.  
  4.  
  5. if(textField == firstDigit){
  6.  
  7. textField.becomeFirstResponder()
  8. secondDigit.resignFirstResponder()
  9. }
  10.  
  11.  
  12. else if(textField == secondDigit){
  13.  
  14. textField.becomeFirstResponder()
  15. thirdDigit.resignFirstResponder()
  16. }
  17.  
  18. else if(textField == thirdDigit){
  19. //textField.becomeFirstResponder()
  20. fourthDigit.becomeFirstResponder()
  21. }

我使用四个文本字段进行OTP输入,其中一次只能输入一个数字.输入数字后,我需要将光标自动移动到下一个文本字段.

设置textField委托并添加目标:
  1. override func viewDidLoad() {
  2. super.viewDidLoad()
  3.  
  4. first.delegate = self
  5. second.delegate = self
  6. third.delegate = self
  7. fourth.delegate = self
  8.  
  9.  
  10. first.addTarget(self,action: "textFieldDidChange:",forControlEvents: UIControlEvents.EditingChanged)
  11. second.addTarget(self,forControlEvents: UIControlEvents.EditingChanged)
  12. third.addTarget(self,forControlEvents: UIControlEvents.EditingChanged)
  13. fourth.addTarget(self,forControlEvents: UIControlEvents.EditingChanged)
  14. }

现在,当文本更改时,更改textField

  1. func textFieldDidChange(textField: UITextField){
  2.  
  3. let text = textField.text
  4.  
  5. if text?.utf16.count >= 1{
  6. switch textField{
  7. case first:
  8. second.becomeFirstResponder()
  9. case second:
  10. third.becomeFirstResponder()
  11. case third:
  12. fourth.becomeFirstResponder()
  13. case fourth:
  14. fourth.resignFirstResponder()
  15. default:
  16. break
  17. }
  18. }else{
  19.  
  20. }
  21. }

最后当用户开始编辑清除textField时

  1. extension ViewController: UITextFieldDelegate{
  2. func textFieldDidBeginEditing(textField: UITextField) {
  3. textField.text = ""
  4. }
  5. }

猜你在找的Swift相关文章