         return gesture
     }()
     
+    private var _keyboard: QKeyboard
+    private var _keyboardHeight: CGFloat
     private lazy var _backgroundView: QInvisibleView = {
         let view = QInvisibleView(frame: self.view.bounds)
         view.translatesAutoresizingMaskIntoConstraints = false

            self._contentLayoutConstraints.append(self.viewController.view.topLayout == self.view.topLayout.offset(offset))
            break
        case .center(let offset):
            self._contentLayoutConstraints.append(self.viewController.view.centerYLayout == self.view.centerYLayout.offset(offset))
            break
        case .bottom(let offset):
            self._contentLayoutConstraints.append(self.viewController.view.bottomLayout == self.view.bottomLayout.offset(offset))
            break
        }
        if self._contentLayoutConstraints.count > 0 {

        self.viewController.dialogDidPressedOutside()
    }

}

// MARK: IQKeyboardObserver

extension QDialogViewController : IQKeyboardObserver {
    
    public func willShowKeyboard(_ keyboard: QKeyboard, animationInfo: QKeyboardAnimationInfo) {
        self._keyboard(duration: animationInfo.duration, height: animationInfo.endFrame.height)
    }
    
    public func didShowKeyboard(_ keyboard: QKeyboard, animationInfo: QKeyboardAnimationInfo) {
    }

    public func willHideKeyboard(_ keyboard: QKeyboard, animationInfo: QKeyboardAnimationInfo) {
        self._keyboard(duration: animationInfo.duration, height: 0)
    }
    
    public func didHideKeyboard(_ keyboard: QKeyboard, animationInfo: QKeyboardAnimationInfo) {
    }
    
}

// MARK: UIGestureRecognizerDelegate
