                 self.bottomMarginConstraint?.constant = 0.0
                 self.layoutIfNeeded()
                 self.isShowing = true
-            }
-        }
-    }
-    
-    func hide(animated: Bool) {
+                
+                if let completion = completion {
+                    completion(animated: animated, completed: true, visible: self.isShowing)
+                }
+            }
+        }
+    }
+    
+    func hideAnimated(animated: Bool) {
         if self.isShowing && !self.isAnimating {
+            self.destroyDisplayTimer()
             
             if animated {
                 if !self.isAnimating { // animate out

        if let userInfo = notification.userInfo {
            animated = userInfo[CocoaBarAnimatedKey] as! Bool
        }
        self.show(animated, populate: nil)
    }
    
    @objc func hideNotificationReceived(notification: NSNotification) {

    
    private var isAnimating: Bool = false
    
    private var displayTimer: NSTimer?
    
    // MARK: Properties
    
    var backgroundStyle: BackgroundStyle = .BlurExtraLight {
