         self.edgesForExtendedLayout = []
         
         self.viewController.parentViewController = self
+        
+        self._keyboard.add(observer: self, priority: 0)
+    }
+    
+    deinit {
+        self._keyboard.remove(observer: self)
     }
 
     open override func didLoad() {

        self.viewController.dialogDidPressedOutside()
    }

}

// MARK: UIGestureRecognizerDelegate

        if self._contentSizeConstraints.count > 0 {
            self.viewController.view.addConstraints(self._contentSizeConstraints)
        }
    }
    
    func _keyboard(duration: TimeInterval, height: CGFloat) {
        guard self._keyboardHeight != height else { return }
        self._keyboardHeight = height
        self._relayoutContentViewController()
        UIView.animate(withDuration: duration, animations: {
            self.view.layoutIfNeeded()
        })
    }

    @objc
