Ios 创建一个数组,将用户输入拆分为6个不同的文本字段(swift)
我是Swift新手,但我已经设法为OTP身份验证页面设置了一些代码,但我需要帮助重新创建代码 我想把文本字段设置成一个数组,当我得到一个值(例如“123456”)时,我想把数字分成6个部分,每个文本字段加1位(1,2,3,4,5,6),反之亦然。我该怎么做呢 现在,我当前设置的代码是: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
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中的字符串
也是一个序列
,这意味着您可以像遍历数组一样遍历字符