微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Swift:如果用户达到最大字符数,如何移动到下一个UITextField

如何解决Swift:如果用户达到最大字符数,如何移动到下一个UITextField

我正在尝试找到一种方法,当用户达到最大字符数时,文本字段将移至下一个字符。

这是我的代码

extension ViewController: UITextFieldDelegate {
    
    func textField(_ textField: UITextField,shouldChangeCharactersIn range: NSRange,replacementString string: String) -> Bool {
        
        guard let text = textField.text else {
            return true
        }
        let length = text.count + string.count - range.length
        let max = 2
        
        if textField == weTextField {
            return length <= max
        }
        else if textField == theyTextField {
            return length <= max
        }
        
        return true
    }
    
}

谢谢

解决方法

您可以通过执行以下操作来实现:

  1. 创建一个函数,该函数将在达到字符数限制时更改您的第一响应者

      @objc func valueDidChange(_ textField: UITextField) {
         guard let text = textField.text else { return }
         let maxLength = 2
         switch textField {
         case textField1 where text.count == maxLength:
             textField2.becomeFirstResponder()
         case textField2 where text.count == maxLength:
             textField3.becomeFirstResponder()
         default:
             break
         }
     }
    
  2. 将该函数添加到您的文本字段中,以便在编辑文本字段时触发该函数。在上述情况下,我将其添加到textField1和textField2

     textField1.addTarget(self,action: #selector(valueDidChange),for: .editingChanged)
     textField2.addTarget(self,for: .editingChanged)
    

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。