如何检查数组中的每个UITextField是否都有用户输入?

时间:2019-05-27 08:07:49

标签: arrays swift uitextfield

我在UITextFields中有一个Array的列表,供用户键入电话号码。当我单击发送按钮时,它将与我的服务器连接,以向列出的号码发送自动消息。这部分效果很好。我现在想做的是检查UITextFields中的哪个电话号码,并在连接到服务器之前检查它是否带有前缀+。如果任何UITextField的电话号码中没有前缀+,则该UITextField的边框颜色应更改颜色。如果UITextField没有电话号码,则不应采取任何措施。我该如何实现?

这是我需要帮助的代码部分


    @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")

            }
        }

3 个答案:

答案 0 :(得分:1)

您可以遍历array的{​​{1}},并为每个textFields验证textField的第一个textcharacter。如果未设置其"+"

borderColor

答案 1 :(得分:0)

我认为您不应该遍历字符串数组,而是遍历文本字段,以便您可以直接设置颜色

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
    }
}

答案 2 :(得分:0)

请尝试此解决方案,我会工作。

private var arrTextFilds = [phonenumber.text ?? "", phonenumber1.text ?? "", 
phonenumber2.text!, phonenumber3.text ?? ""]
private var numArray : [String] = []
arrTextFilds {
   if let text = $0.text,text.hasPrefix(“+”) {
       numArray.append(text)
       $0.layer.borderWidth = 0.0 
   } else {
      $0.layer.borderColor = UIColor.red.cgColor
      $0.layer.borderWidth = 1.0
  }
}