         tabNavigationBar.delegate = self
         _panGestureRecognizer = UIPanGestureRecognizer(target: self, action: #selector(_handlePanGestureRecognizer(_:)))
         _panGestureRecognizer.isEnabled = false
+        _keyboardAlignmentViewHeightConstraint = _keyboardAlignmentView.heightAnchor.constraint(equalToConstant: 0.0)
+        _keyboardAlignmentViewHeightConstraint.isActive = true
+        // NotificationCenter.default.addObserver(self, selector: #selector(_handleKeyboardWillChangeFrameNotification(_:)), name: NSNotification.Name.UIKeyboardWillShow, object: nil)
+        NotificationCenter.default.addObserver(self, selector: #selector(_handleKeyboardWillChangeFrameNotification(_:)), name: NSNotification.Name.UIKeyboardWillChangeFrame, object: nil)
+        // NotificationCenter.default.addObserver(self, selector: #selector(_handleKeyboardWillChangeFrameNotification(_:)), name: NSNotification.Name.UIKeyboardWillHide, object: nil)
+    }
+    
+    deinit {
+        NotificationCenter.default.removeObserver(self)
     }
     
     override public func loadView() {

    }
}

extension ViewController {
    override func removeFromParentViewController() {
        super.removeFromParentViewController()

        view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|[_contentScrollView]|", options: [], metrics: nil, views: ["_contentScrollView":_contentScrollView]))
        _contentScrollView.widthAnchor.constraint(equalTo: view.widthAnchor).isActive = true
        _contentScrollView.heightAnchor.constraint(equalTo: view.heightAnchor).isActive = true
    }
    
    private func _setupKeyboardAlignmentView() {
        view.insertSubview(_keyboardAlignmentView, belowSubview: _contentScrollView)
        _keyboardAlignmentView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
        _keyboardAlignmentView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
        _keyboardAlignmentView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
    }
    
    private func _transitionTabNavigationBarWithPercent(_ perecent: CGFloat, transition views: TabNavigationBar.TabNavigationTransitionContext?) {
