     // MARK: Keyboard
 
     func handleKeyboardWillShowNotification(notification: NSNotification) {
-        println("showKeyboard")
 
         keyboardShowTimes += 1
 

            let keyboardEndFrame = (userInfo[UIKeyboardFrameEndUserInfoKey] as! NSValue).CGRectValue()
            let keyboardHeight = keyboardEndFrame.height


            println("animationDuration: \(animationDuration)")
            println("keyboardHeight: \(keyboardHeight)")


            let lastTimeKeyboardHeight = self.keyboardHeight

            self.keyboardHeight = keyboardHeight

//            if isKeyboardVisible && firstTime {
//                messageToolbarBottomConstraintConstantAfterKeyboardWillShow = self.messageToolbarBottomConstraint.constant
//                firstTime = false
//            }
            UIView.animateWithDuration(animationDuration, delay: 0, options: UIViewAnimationOptions(animationCurveValue << 16), animations: { () -> Void in
                self.messageToolbarBottomConstraint.constant = keyboardHeight
                self.view.layoutIfNeeded()


    var conversationCollectionViewHasBeenMovedToBottomOnce = false

    // Keyboard 动画相关
    var conversationCollectionViewContentOffsetBeforeKeyboardWillShow = CGPointZero
    var conversationCollectionViewContentOffsetBeforeKeyboardWillHide = CGPointZero
    var isKeyboardVisible = false
    var keyboardHeight: CGFloat = 0

    var keyboardShowTimes = 0 {
        willSet {
