如何检查数组中的每个 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
    }
}

您可以遍历 textFieldsarray 并针对每个 textField 验证第一个 charactertext"+"。如果不设置其 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
  }
}