         }
     }
     
-    @IBInspectable open var keyboardSize: CGSize = CGSize(width: 214, height: 280)
+    @IBInspectable open var keyboardSize: CGSize = CGSize(width: 214, height: 346)
     
     @IBInspectable open var keyboardBackgroundColor: UIColor? = DEFAULT_BACKGROUND_COLOR
     

            buttons.append(button)
        }
        
        if delegate?.isDecimal == true {
            let button = UIButton(type: .custom)
            button.tag = 10
            button.setTitle(".", for: .normal)
            _set_button(button)
            buttons.append(button)
        }
        
        do {
            let button = UIButton(type: .custom)
            button.tag = 11
            button.setTitle("⌫", for: .normal)
            _set_button(button)
            buttons.append(button)
        }
        
        let h_stack_1 = UIStackView(arrangedSubviews: [buttons[7], buttons[8], buttons[9]])
        let h_stack_2 = UIStackView(arrangedSubviews: [buttons[4], buttons[5], buttons[6]])
        let h_stack_3 = UIStackView(arrangedSubviews: [buttons[1], buttons[2], buttons[3]])
        let h_stack_4 = UIStackView(arrangedSubviews: delegate?.isDecimal == true ? [buttons[10], buttons[0], buttons[11]] : [buttons[0], buttons[10]])
        
        h_stack_1.spacing = delegate?.keyButtonSpacing ?? 0
        h_stack_2.spacing = delegate?.keyButtonSpacing ?? 0
        h_stack_3.spacing = delegate?.keyButtonSpacing ?? 0
        h_stack_4.spacing = delegate?.keyButtonSpacing ?? 0
        
        let stack = UIStackView(arrangedSubviews: [h_stack_1, h_stack_2, h_stack_3, h_stack_4])
        
        stack.spacing = delegate?.keyButtonSpacing ?? 0
        stack.axis = .vertical

            self.view.safeAreaLayoutGuide.bottomAnchor.constraint(equalTo: stack.bottomAnchor, constant: delegate?.keyButtonSpacing ?? 0),
        ])
        
        if let sign_button = sign_button {
            NSLayoutConstraint.activate([
                NSLayoutConstraint(item: sign_button, attribute: .width, relatedBy: .equal, toItem: buttons[1], attribute: .width, multiplier: 1, constant: 0),
                NSLayoutConstraint(item: sign_button, attribute: .height, relatedBy: .equal, toItem: buttons[0], attribute: .height, multiplier: 1, constant: 0),
            ])
        }
        
        if let dot_button = dot_button {
            NSLayoutConstraint.activate([
                NSLayoutConstraint(item: dot_button, attribute: .width, relatedBy: .equal, toItem: buttons[1], attribute: .width, multiplier: 1, constant: 0),
                NSLayoutConstraint(item: dot_button, attribute: .height, relatedBy: .equal, toItem: buttons[0], attribute: .height, multiplier: 1, constant: 0),
            ])
        }
        
        NSLayoutConstraint.activate(buttons.dropFirst(2).map { NSLayoutConstraint(item: $0, attribute: .width, relatedBy: .equal, toItem: buttons[1], attribute: .width, multiplier: 1, constant: 0) })
        NSLayoutConstraint.activate(buttons.dropFirst().map { NSLayoutConstraint(item: $0, attribute: .height, relatedBy: .equal, toItem: buttons[0], attribute: .height, multiplier: 1, constant: 0) })
    }
    
    @objc func buttonAction(_ sender: UIButton) {
