无法将textfield设置为带有tvos中textfield outlet集合的becomeFirstResponder()

时间:2016-12-21 08:48:43

标签: ios swift swift3 tvos tvos10

我拿了文本字段出口集合并在那里绑定了六个文本字段。 我想成为文本字段出口集合中下一个文本字段的FirstResponder。 我从storyboard给了textfields标签0到5。 见,

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

错误:

其视图不在窗口层次结构中!

说明:

在此代码中,我无法成为nextFirstResponder的下一个文本字段。

任何人都可以帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

我试图重现您的错误,但没有成功。 查看故事板。 Xcode版本8.2。斯威夫特3。

enter image description here

请您提供更多详细信息,因为我只是复制粘贴您的代码并且工作正常