         }
     }
 
-    open var animateWhenKeyboardAppear: ((_ appearPostIndex: Int, _ keyboardHeight: CGFloat, _ keyboardHeightIncrement: CGFloat) -> Void)? {
+    public var animateWhenKeyboardAppear: ((_ appearPostIndex: Int, _ keyboardHeight: CGFloat, _ keyboardHeightIncrement: CGFloat) -> Void)? {
         didSet {
             keyboardObserveEnabled = true
         }
     }
 
-    open var animateWhenKeyboardDisappear: ((_ keyboardHeight: CGFloat) -> Void)? {
+    public var animateWhenKeyboardDisappear: ((_ keyboardHeight: CGFloat) -> Void)? {
         didSet {
             keyboardObserveEnabled = true
         }
     }
 
-    open var postKeyboardInfo: ((_ keyboardMan: KeyboardMan, _ keyboardInfo: KeyboardInfo) -> Void)? {
+    public var postKeyboardInfo: ((_ keyboardMan: KeyboardMan, _ keyboardInfo: KeyboardInfo) -> Void)? {
         didSet {
             keyboardObserveEnabled = true
         }

        let isSameAction: Bool
    }

    open fileprivate(set) var appearPostIndex = 0

    open fileprivate(set) var keyboardInfo: KeyboardInfo? {
        willSet {
            guard UIApplication.shared.applicationState != .background else {
                return

        }
    }

    public var keyboardObserveEnabled = false {
        willSet {
            if newValue != keyboardObserveEnabled {
                keyboardObserver = newValue ? NotificationCenter.default : nil
