Detect Focus Change for UITextField

╄→尐↘猪︶ㄣ 提交于 2019-12-02 17:56:15

Use the UITextField delegate methods .. its better on your case than the keyboard methods .. when textField got focus the - (void)textFieldDidBeginEditing:(UITextField *)textField; will be fired .. and when it lost focus - (void)textFieldDidEndEditing:(UITextField *)textField; will be fired.

-(BOOL)textFieldShouldBeginEditing:(UITextField*)textField {
if (textField.tag == 1) { //first textField tag
    //textField 1
}
else {
   //textField 2
}
}

Use UITextFieldDelegate

and

func textFieldDidBeginEditing(textField: UITextField) {
        println("did")
        if textField.tag == 1{
            self.txtFullName.layer.borderColor = UIColor.blueColor().CGColor
        }
    }

In swift 4:

  1. Implement UITextFieldDelegate into your ViewController class
  2. Add the Outlets for the textFields you want to detect focus on
  3. Implement function textFieldDidBeginEditing (in case you want to be notified on that specific action, see Apple's documentation) and fill it with your code
  4. On viewDidLoad() assign your ViewController class as the delegate for the textField you previously added in step 2

It must look similar to:

class ViewController: UIViewController, UITextFieldDelegate {
    @IBOutlet weak var yourTextField: UITextField!

    func textFieldDidBeginEditing(_ textField: UITextField) {
        // Your code here
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        yourTextField.delegate = self
    }

    ...

}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!