文本字段首先响应Swift上的下一个

时间:2015-05-11 11:14:04

标签: swift loops textfield

我无法弄清楚如何从这个由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()

    }

2 个答案:

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