Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 创建一个数组,将用户输入拆分为6个不同的文本字段(swift)_Ios_Swift_Uitextfield - Fatal编程技术网

Ios 创建一个数组,将用户输入拆分为6个不同的文本字段(swift)

Ios 创建一个数组,将用户输入拆分为6个不同的文本字段(swift),ios,swift,uitextfield,Ios,Swift,Uitextfield,我是Swift新手,但我已经设法为OTP身份验证页面设置了一些代码,但我需要帮助重新创建代码 我想把文本字段设置成一个数组,当我得到一个值(例如“123456”)时,我想把数字分成6个部分,每个文本字段加1位(1,2,3,4,5,6),反之亦然。我该怎么做呢 现在,我当前设置的代码是: import UIKit import FirebaseAuth class PhoneAuthenticationViewController: UIViewController { @IBOutle

我是Swift新手,但我已经设法为OTP身份验证页面设置了一些代码,但我需要帮助重新创建代码

我想把文本字段设置成一个数组,当我得到一个值(例如“123456”)时,我想把数字分成6个部分,每个文本字段加1位(1,2,3,4,5,6),反之亦然。我该怎么做呢

现在,我当前设置的代码是:

import UIKit
import FirebaseAuth

class PhoneAuthenticationViewController: UIViewController {
    @IBOutlet weak var Auth1: UITextField!
    @IBOutlet weak var Auth2: UITextField!
    @IBOutlet weak var Auth3: UITextField!
    @IBOutlet weak var Auth4: UITextField!
    @IBOutlet weak var Auth5: UITextField!
    @IBOutlet weak var Auth6: UITextField!

    @IBAction func textEditDidBegin(_ sender: UITextField) {
        print("textEditDidBegin has been pressed")

        if !(sender.text?.isEmpty)!{
            sender.selectAll(self)
            //buttonUnSelected()
        }else{
            print("Empty")
            sender.text = " "

        }
    }

    @IBAction func textEditChanged(_ sender: UITextField) {
        print("textEditChanged has been pressed")
        let count = sender.text?.count
        //
        if count == 1{
            switch sender {
            case Auth1:
                Auth2.becomeFirstResponder()
            case Auth2:
                Auth3.becomeFirstResponder()
            case Auth3:
                Auth4.becomeFirstResponder()
            case Auth4:
                Auth5.becomeFirstResponder()
            case Auth5:
                Auth6.becomeFirstResponder()
            case Auth6:
                Auth6.resignFirstResponder()
            default:
                print("default")
            }
        }
    }

     override func viewDidLoad() {
        super.viewDidLoad()
        Auth1.delegate = self
        Auth2.delegate = self
        Auth3.delegate = self
        Auth4.delegate = self
        Auth5.delegate = self
        Auth6.delegate = self
    }

    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        Auth1.becomeFirstResponder()
    }
}
在下面的代码中

switch sender {
    case Auth1:
        // add your logic to append entered character into auth1 textfield.
        Auth1.text = sender.text ?? ""
        Auth2.becomeFirstResponder()
    ...
    // same in all case
    ...
    }

如果这对您有帮助,请尝试此代码

import UIKit

/// Extension for String
extension String {
    /// Function which will split string in parts
    func splitInParts() -> [String]{
        /// Array
        var splittedArray = [String]()

        /// Split STring according to characters
        for char in self {
            /// Append character as string
            splittedArray.append(String(char))
        }

        /// Return
        return splittedArray
    }
}

class TwoScrollViewStack: UIViewController {

    /// OTP String
    var myString : String = "123456"

    /// Labels
    private var otp1 = UILabel()
    private var otp2 = UILabel()
    private var otp3 = UILabel()
    private var otp4 = UILabel()
    private var otp5 = UILabel()
    private var otp6 = UILabel()

    /// Label Array
    private var labelArray = [UILabel]()


    override func viewDidLoad() {
        super.viewDidLoad()

        /// Assign Label in Array
        labelArray = [otp1,otp2,otp3,otp4,otp5,otp6]

        /// Get Splitted String
        let splittedStringArray = self.myString.splitInParts()

        /// Sssign Values to Labels
        for i in 0..<splittedStringArray.count {
            labelArray[i].text = splittedStringArray[i]
        }

        /// Check Output if necessary
        print(splittedStringArray)
        /// Output - ["1", "2", "3", "4", "5", "6"]
    }
}
导入UIKit
///字符串的扩展名
扩展字符串{
///将字符串拆分为多个部分的函数
func splitInParts()->[字符串]{
///排列
var splittedArray=[String]()
///按字符分割字符串
在自我中寻找char{
///将字符追加为字符串
splittedArray.append(字符串(字符))
}
///返回
返回分割数组
}
}
类TwoScrollViewStack:UIViewController{
///OTP字符串
var myString:String=“123456”
///标签
私有变量otp1=UILabel()
私有变量otp2=UILabel()
私有变量otp3=UILabel()
私有变量otp4=UILabel()
私有变量otp5=UILabel()
私有变量otp6=UILabel()
///标签阵列
私有变量labelArray=[UILabel]()
重写func viewDidLoad(){
super.viewDidLoad()
///在数组中指定标签
标签阵列=[otp1、otp2、otp3、otp4、otp5、otp6]
///得到分裂的字符串
让splittedStringArray=self.myString.splitInParts()
///Sssign值到标签

对于0中的i..Swift中的
字符串
也是一个
序列
,这意味着您可以像遍历数组一样遍历字符