             _delegate?.textFieldKeyboardDidShow(self, frame: endFrame.cgRectValue)
         }
     }
-    func _textFieldKeyboardWillHide(notification: NSNotification) {
+    @objc func _textFieldKeyboardWillHide(notification: NSNotification) {
         
         guard let userInfo = notification.userInfo else { return }
         guard let duration = userInfo[UIKeyboardAnimationDurationUserInfoKey] as? NSNumber else { return }

        return self.delegate as? SDTextFieldDelegate
    }
    
    func _textFieldKeyboardWillShow(notification: NSNotification) {
        
        guard let userInfo = notification.userInfo else { return }
        guard let duration = userInfo[UIKeyboardAnimationDurationUserInfoKey] as? NSNumber else { return }

            _delegate?.textFieldKeyboardWillHide(self, animationDuration: duration.doubleValue, animationCurve: UIViewAnimationCurve(rawValue: curve.intValue)!, startFrame: startFrame.cgRectValue, endFrame: endFrame.cgRectValue)
        }
    }
    @objc func _textFieldKeyboardDidHide(notification: NSNotification) {
        
        guard let userInfo = notification.userInfo else { return }
        guard let endFrame = userInfo[UIKeyboardFrameEndUserInfoKey] as? NSValue else { return }
        _delegate?.textFieldKeyboardDidHide(self, frame: endFrame.cgRectValue)
    }
    @objc func _textFieldKeyboardWillChangeFrame(notification: NSNotification) {
        
        guard let userInfo = notification.userInfo else { return }
        guard let duration = userInfo[UIKeyboardAnimationDurationUserInfoKey] as? NSNumber else { return }
