Это не очень сложно. Я обычно поддерживаю последовательность, используя массив представлений:
// put your input fields here
let fields: [UIView] = [self.textField1, self.textView1, self.textField2]
func switchToNext(from field: UIView) {
guard let index = fields.index(of: field) else {
return
}
if index + 1 == fields.count {
// handle the last item
field.resignFirstResponder()
} else {
let next = fields[index + 1]
next.becomeFirstResponder()
}
}
Вы можете вызвать метод из UITextFieldDelegate
и UITextViewDelegate
:
func textFieldShouldReturn(_ field: UITextField) {
switchToNext(from: field)
}