     }
 
     deinit {
-        removeKeyboardObservers()
+        deinitialize()
     }
 
 }

    fileprivate var inputViews: [UIView]!
    fileprivate var oldTextFieldDelegates: [UITextField: UITextFieldDelegate?] = [:]
    fileprivate var oldTextViewDelegates: [UITextView: UITextViewDelegate?] = [:]
    fileprivate var currentInputView: UIView?

    private var tableView: UITableView?
    private var originalContentInset: UIEdgeInsets?
    private var originalContentOffset: CGPoint?


        return inputViews.filter { view in
            let absoluteInputViewFrame = window.convert(view.frame, from: view.superview)
            return absoluteCellFrame.intersects(absoluteInputViewFrame)
        }.first
    }

    func visibleCell(forInputView inputView: UIView) -> UITableViewCell? {
