                 self.conversationCollectionView.contentInset.bottom = self.messageToolbar.intrinsicContentSize().height + keyboardHeight
 
             }, completion: { (finished) -> Void in
-                println("self.keyboardHeight: \(self.keyboardHeight)")
-
                 self.keyboardShowTimes -= 1
             })
         }
     }
 
     func handleKeyboardWillHideNotification(notification: NSNotification) {
-        println("hideKeyboard")
-
         conversationCollectionViewContentOffsetBeforeKeyboardWillHide = conversationCollectionView.contentOffset
 
         if let userInfo = notification.userInfo {

                    println("fire setContentOffset")

                    self.isKeyboardVisible = true

                } else {
//                    var contentOffset = conversationCollectionView.contentOffset//self.conversationCollectionViewContentOffsetBeforeKeyboardWillShow
//
//                    let dy = /*keyboardHeight*/self.messageToolbarBottomConstraint.constant - (messageToolbarBottomConstraintConstantAfterKeyboardWillShow /*+ self.messageToolbar.intrinsicContentSize().height*/)//self.messageToolbarBottomConstraint.constant
//                    contentOffset.y += dy
//                    println("XXXcontentOffset.y += \(self.messageToolbarBottomConstraint.constant) - \(messageToolbarBottomConstraintConstantAfterKeyboardWillShow)")
//                    self.conversationCollectionView.setContentOffset(contentOffset, animated: true)
//
//                    firstTime = true
                }
            }
        }

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

            self.keyboardHeight = keyboardHeight

            UIView.animateWithDuration(animationDuration, delay: 0, options: UIViewAnimationOptions(animationCurveValue << 16), animations: { () -> Void in
                self.messageToolbarBottomConstraint.constant = keyboardHeight
                self.view.layoutIfNeeded()
