   }
 
   public func keyboardLayout(keyboardLayout: KeyboardLayout, didKeyPressEnd keyboardButton: KeyboardButton) {
+    delegate?.customKeyboard?(self, keyboardButtonPressed: keyboardButton)
+
     // If keyboard key is pressed notify no questions asked
     if case KeyboardButtonType.Key(let text) = keyboardButton.type {
       delegate?.customKeyboard?(self, keyButtonPressed: text)

    let newKeyboardLayout = getKeyboardLayout(ofState: newState)
    newKeyboardLayout.delegate = self
    addSubview(newKeyboardLayout)

    // Set previous shift state
    if case CustomKeyboardLayoutState.Letters(let shiftState) = newState {
      previousShiftState = shiftState
    }
  }

  public func reload() {


      // Update keyboard layout state
      case .Letters:
        keyboardLayoutState = .Letters(shiftState: .Off)
      case .Numbers:
        keyboardLayoutState = .Numbers
      case .Symbols:
