尝试从子视图获取UITextField,但获取UITextfieldLabel

时间:2016-04-05 18:22:53

标签: ios swift uitextfield

我有一个包含多个UITextField的视图。 因此,当键盘弹出时,我遍历视图以找出哪个文本字段是第一响应者。

我尝试打印出所有的视图类,它显示UITextFieldLabel而不是UITextField,任何人都知道这是什么?我想找出哪些文本被重点关注。

这是我使用的代码。

extension UIView{

    func firstResponder() -> UIView?{
        if self.isFirstResponder()
        {
            return self
        }

        for  view in self.subviews
        {

            if view.isFirstResponder()
            {
                return view
            }
        }

        return nil
    }
}

1 个答案:

答案 0 :(得分:0)

UITextField具有您的视图可以符合的协议。选择或编辑文本字段时,您将在委托方法中获取该文本字段。

class myView: UIView, UITextFieldDelegate {

    var anExampleTextField: UITextField?         

    override init(frame: CGRect) {
        super.init(frame: frame);
        self.anExampleTextField.delegate = self
    }

    //if using interface builder
    override func awakeFromNib() {
        super.awakeFromNib()
        self.anExampleTextField.delegate = self
    }

    func textFieldDidBeginEditing(textField: UITextField) {
        //The selected textfield will be passed here.
    }
}