         
 //        self.button.setTitle(self.text, forState: UIControlState.Normal)
         self.keyView.text = (self.text ? self.text : "")
+    }
+    
+    func showPopup() {
+        if !self.popup {
+            self.popup = KeyboardKeyPopup(frame: CGRectMake(0, -self.bounds.height, self.bounds.width * 5, self.bounds.height), vertical: false)
+            self.addSubview(self.popup)
+        }
+    }
+    
+    func hidePopup() {
+        if self.popup {
+            self.popup!.removeFromSuperview()
+            self.popup = nil
+        }
     }
     
     class KeyboardKeyBackground: UIControl {

            CGPathRelease(path)
        }
    }
}

@IBDesignable class KeyboardKey: UIControl {
    
    var keyView: KeyboardKeyBackground
    var popup: KeyboardKeyPopup?
    
    @IBInspectable var text: String! {
    didSet {
