Не удается получить поля для редактирования в порядке тегов.В этом сценарии у меня есть четыре поля на экране в два столбца и две строки.Я хочу иметь возможность редактировать вниз столбец 1 и столбец2.По умолчанию он пересекает строку 1, затем строку 2.
Это часть гораздо более крупного проекта, над которым я работаю.Это критическая особенность, так как есть еще несколько полей (более 20).Я пытался использовать TextDidEndEditing тоже.Это не помогло.
import UIKit
import os.log
class ViewController: UIViewController, UITextFieldDelegate {
@IBOutlet var Par1: UITextField!
@IBOutlet var Par2: UITextField!
@IBOutlet var Par3: UITextField!
@IBOutlet var Par4: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
Par1.delegate = self
Par1.tag = 0
Par2.delegate = self
Par2.tag = 1
Par3.delegate = self
Par3.tag = 2
Par4.delegate = self
Par4.tag = 3
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func textFieldShouldEndEditing(_ textField: UITextField) -> Bool {
var nextTag:Int
textField.resignFirstResponder()
if (textField.tag == 3) {
nextTag = 0
} else {
nextTag = textField.tag + 1
}
if let nextResponder = textField.superview?.viewWithTag(nextTag) as? UITextField {
nextResponder.becomeFirstResponder()
} else {
textField.resignFirstResponder()
}
return true
}
@IBAction func Par1Entered(_ sender: UITextField) {
Par1.text = sender.text
}
@IBAction func Par2Entered(_ sender: UITextField) {
Par2.text = sender.text
}
@IBAction func Par3Entered(_ sender: UITextField) {
Par3.text = sender.text
}
@IBAction func Par4Entered(_ sender: UITextField) {
Par4.text = sender.text
}
}