      - date: February 18, 2016
      */
     public func activateKeyboardAdjustment(showBlock: AnyObject?, hideBlock: AnyObject?) {
-        if self is KeyboardAdjusting {
+        if let conformingSelf = self as? KeyboardAdjusting {
+            // Activate the bottom constraint.
+            conformingSelf.keyboardAdjustmentConstraint?.active = true
+
             let notificationCenter = NSNotificationCenter.defaultCenter()
             notificationCenter.addObserver(self, selector: "keyboardWillHide:", name: UIKeyboardWillHideNotification, object: hideBlock)
-            notificationCenter.addObserver(self, selector: "keyboardDidShow:", name: UIKeyboardWillHideNotification, object: showBlock)
+            notificationCenter.addObserver(self, selector: "keyboardDidShow:", name: UIKeyboardDidShowNotification, object: showBlock)
+
+            if let viewA = conformingSelf.keyboardAdjustmentConstraint?.firstItem as? UIView,
+                viewB = conformingSelf.keyboardAdjustmentConstraint?.secondItem as? UIView {
+                    if viewB.subviews.contains(viewA) {
+                        assertionFailure("Please reverse the order of arguments in your keyboard adjustment constraint.")
+                    }
+            }
         }
         else {
             print("You must define `keyboardAdjustmentConstraint` on your view controller to activate KeyboardAdjuster.")

                value = userInfo[UIKeyboardFrameEndUserInfoKey] as? NSValue {
                    let frame = value.CGRectValue()
                    let keyboardFrameInViewCoordinates = view.convertRect(frame, fromView: nil)
                    if let duration: NSTimeInterval = userInfo[UIKeyboardAnimationDurationUserInfoKey] as? NSTimeInterval,
                        curve = userInfo[UIKeyboardAnimationCurveUserInfoKey] as? UIViewAnimationOptions,
                        animated = conformingSelf.keyboardAdjustmentAnimated {
                            constraint.constant = CGRectGetHeight(view.bounds) - keyboardFrameInViewCoordinates.origin.y
                            let animationOptions: UIViewAnimationOptions = [UIViewAnimationOptions.BeginFromCurrentState, curve]
                            if animated {
                                UIView.animateWithDuration(duration, delay: 0, options: animationOptions, animations: {
                                    self.view.layoutIfNeeded()
                                    }, completion: nil)
                            }
                    }
            }


    /**
     A private method called when the keyboard is about to be hidden.

     - parameter sender: An `NSNotification` containing a `Dictionary` with information regarding the keyboard appearance.
     - author: Daniel Loewenherz
     - copyright: ©2016 Lionheart Software LLC
     - date: February 18, 2016
     */
    func keyboardWillHide(sender: NSNotification) {
        guard let conformingSelf = self as? KeyboardAdjusting else {
            return
        }
