我在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")
}
}
答案 0 :(得分:1)
您可以遍历array
的{{1}},并为每个textFields
验证textField
的第一个text
为character
。如果未设置其"+"
。
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
}
}