         case .One:
             self.selectedButtons = [sender.identifier!]
         case .Any:
-            self.selectedButtons.append(sender.identifier!)
+            if sender.selected {
+                self.selectedButtons = self.selectedButtons.filter{ $0 != sender.identifier }
+            } else {
+                self.selectedButtons.append(sender.identifier!)
+            }
         default:()
         }
         


        var selected = false {
            didSet {
                let activeColor = self.selected ? parentTabView.selectionColor : parentTabView.labelColor
                button.setAttributedString(parentTabView.fontSize, color: activeColor)
                button.state = self.selected ? NSOnState : NSOffState

            }
        }
        
        var trackingArea: NSTrackingArea!
        override func updateTrackingAreas() {
            super.updateTrackingAreas()
