J'ai pris la collection de sortie de champ de texte et lier six champ de texte là-bas. Je veux devenir firstResponder du champ de texte suivant qui est dans la collection de sortie de champ de texte. J'ai donné le tag 0 à 5 du storyboard. voir,Impossible de définir textfield comme devenirFirstResponder() avec la collection de sortie textfield dans tvos
principal ViewController:
class ViewController: UIViewController {
@IBOutlet var txtSignUp: [UITextField]!
var arrayPlaceHolder:NSArray!
override func viewDidLoad() {
super.viewDidLoad()
arrayPlaceHolder = NSArray(array: ["1","2","3","4","5","6"])
self.setTextFieldValue()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
private func setTextFieldValue(){
for txtField in txtSignUp{
let tagTxt = txtField.tag
txtField.attributedPlaceholder = NSAttributedString(string:arrayPlaceHolder[tagTxt] as! String, attributes:[NSForegroundColorAttributeName:UIColor.black])
if(tagTxt != ((arrayPlaceHolder.count) - 1)){
txtField.returnKeyType = .next
}
txtField.delegate = self
}
}
}
extension ViewController:UITextFieldDelegate{
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
for txt in txtSignUp{
let nextTxt = (textField.tag + 1)
if txt.tag == nextTxt {
txt.becomeFirstResponder()
break
}
}
return true
}
}
Erreur:
dont la vue est pas dans la hiérarchie de la fenêtre!
Explication:
Dans ce code, je ne suis pas en mesure de devenir champ suivant texte becomeFirstResponder.
Quelqu'un peut-il m'aider à résoudre ce problème?
Avez-vous ajouté textfields comme subviews à votre point de vue? Pouvez-vous afficher la hiérarchie des vues de storyboard? –
Non, j'ai pris la collection de sortie de textfield. –