extrablade
extrablade

Reputation: 403

Text field first responder to the next on Swift

I can't figure out how to make a loop out of this outletCollection that is composed of textFields. I'm just jumping from one text field to another. The code works but a loop would be nice. Thanks in advance

    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()

    }

Upvotes: 0

Views: 266

Answers (2)

extrablade
extrablade

Reputation: 403

this one works but it resigns the first responder at textfield 7 instead of 8(which is the last one) any suggestions?

for var i = 0; i < outletCollection.count; i++ {

        if outletCollection[i].endEditing(true) {

            i++

            outletCollection[i].becomeFirstResponder()

            if (outletCollection.last?.endEditing(true) != nil) {

                resignFirstResponder()
            }

        }

    }

Upvotes: 1

Zell B.
Zell B.

Reputation: 10296

Check this:

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

Upvotes: 0

Related Questions