我无法弄清楚如何从这个由textFields组成的outletCollection中创建一个循环。我只是从一个文本字段跳到另一个文本字段。代码可以工作,但循环会很好。提前致谢
if outletCollection[0].endEditing(true) {
outletCollection[1].becomeFirstResponder()
} else if outletCollection[1].endEditing(true) {
outletCollection[2].becomeFirstResponder()
} else if outletCollection[2].endEditing(true) {
outletCollection[3].becomeFirstResponder()
} else if outletCollection[3].endEditing(true) {
resignFirstResponder()
}
答案 0 :(得分:1)
这个有效,但是它会在textfield 7而不是8(这是最后一个)的任何建议中重新启动第一个响应者吗?
for var i = 0; i < outletCollection.count; i++ {
if outletCollection[i].endEditing(true) {
i++
outletCollection[i].becomeFirstResponder()
if (outletCollection.last?.endEditing(true) != nil) {
resignFirstResponder()
}
}
}
答案 1 :(得分:0)
检查一下:
for index in 0..<outletCollection.count {
if outletCollection[index].endEditing(true) {
if index < outletCollection.count - 1 {
outletCollection[index + 1].becomeFirstResponder()
} else {
outletCollection[index].resignFirstResponder()
}
break
}
}