如何检查数组中的每个 UITextField 是否都有用户输入?
How do I check if each UITextField in an Array has a user input?
我在 Array
中有一个 UITextFields
的列表,供用户键入 phone 号码。当我单击“发送”按钮时,它将连接到我的服务器以向列出的号码发送一条自动消息。这部分效果很好。我现在要做的是检查 UITextFields
中哪个有 phone 数字,并在连接到我的服务器之前检查它是否有前缀 + 。如果 UITextField
中有一个 phone 数字没有前缀 +,则 UITextField
的边框颜色应该改变颜色。如果 UITextField
没有 phone 号码,则不应采取任何措施。我该如何实现这一目标?
这是我需要帮助的代码部分
@IBAction func sendbutton(_ sender: Any) {
var numArray: Array<Any>
numArray = [phonenumber.text!, phonenumber1.text!, phonenumber2.text!, phonenumber3.text!]
let myColor = UIColor.red
for num in numArray {
if (num as AnyObject).hasPrefix("+") {
print("Has + symbol")
} else {
print("Does Not Have Symbol")
}
}
我认为您不应该遍历字符串数组,而是遍历文本字段以便您可以直接设置颜色
var textFields: Array<UITextField> = [phonenumber, phonenumber1, phonenumber2, phonenumber3]
var numbersToSend = [String]()
let myColor = UIColor.red
for textField in textFields {
let number = textField.text ?? ""
if validatePhoneNumber(number) { //extract validation into separate function for clarity
numbersToSend.append(number)
} else {
textField.backgroundColor = myColor //or whatever property you want to change
}
}
您可以遍历 textFields
的 array
并针对每个 textField
验证第一个 character
的 text
是 "+"
。如果不设置其 borderColor
.
var textFields = [phonenumber, phonenumber1, phonenumber2, phonenumber3]
var numArray = [String]()
textFields.forEach {
if let text = [=10=].text, text.first == "+" {
numArray.append(text)
[=10=].layer.borderWidth = 0.0 //To reset the textField if it didn't validate earlier
} else {
[=10=].layer.borderColor = UIColor.red.cgColor
[=10=].layer.borderWidth = 1.0
}
}
请尝试这个解决方案,我会成功的。
private var arrTextFilds = [phonenumber.text ?? "", phonenumber1.text ?? "",
phonenumber2.text!, phonenumber3.text ?? ""]
private var numArray : [String] = []
arrTextFilds {
if let text = [=10=].text,text.hasPrefix(“+”) {
numArray.append(text)
[=10=].layer.borderWidth = 0.0
} else {
[=10=].layer.borderColor = UIColor.red.cgColor
[=10=].layer.borderWidth = 1.0
}
}
我在 Array
中有一个 UITextFields
的列表,供用户键入 phone 号码。当我单击“发送”按钮时,它将连接到我的服务器以向列出的号码发送一条自动消息。这部分效果很好。我现在要做的是检查 UITextFields
中哪个有 phone 数字,并在连接到我的服务器之前检查它是否有前缀 + 。如果 UITextField
中有一个 phone 数字没有前缀 +,则 UITextField
的边框颜色应该改变颜色。如果 UITextField
没有 phone 号码,则不应采取任何措施。我该如何实现这一目标?
这是我需要帮助的代码部分
@IBAction func sendbutton(_ sender: Any) {
var numArray: Array<Any>
numArray = [phonenumber.text!, phonenumber1.text!, phonenumber2.text!, phonenumber3.text!]
let myColor = UIColor.red
for num in numArray {
if (num as AnyObject).hasPrefix("+") {
print("Has + symbol")
} else {
print("Does Not Have Symbol")
}
}
我认为您不应该遍历字符串数组,而是遍历文本字段以便您可以直接设置颜色
var textFields: Array<UITextField> = [phonenumber, phonenumber1, phonenumber2, phonenumber3]
var numbersToSend = [String]()
let myColor = UIColor.red
for textField in textFields {
let number = textField.text ?? ""
if validatePhoneNumber(number) { //extract validation into separate function for clarity
numbersToSend.append(number)
} else {
textField.backgroundColor = myColor //or whatever property you want to change
}
}
您可以遍历 textFields
的 array
并针对每个 textField
验证第一个 character
的 text
是 "+"
。如果不设置其 borderColor
.
var textFields = [phonenumber, phonenumber1, phonenumber2, phonenumber3]
var numArray = [String]()
textFields.forEach {
if let text = [=10=].text, text.first == "+" {
numArray.append(text)
[=10=].layer.borderWidth = 0.0 //To reset the textField if it didn't validate earlier
} else {
[=10=].layer.borderColor = UIColor.red.cgColor
[=10=].layer.borderWidth = 1.0
}
}
请尝试这个解决方案,我会成功的。
private var arrTextFilds = [phonenumber.text ?? "", phonenumber1.text ?? "",
phonenumber2.text!, phonenumber3.text ?? ""]
private var numArray : [String] = []
arrTextFilds {
if let text = [=10=].text,text.hasPrefix(“+”) {
numArray.append(text)
[=10=].layer.borderWidth = 0.0
} else {
[=10=].layer.borderColor = UIColor.red.cgColor
[=10=].layer.borderWidth = 1.0
}
}