I’m building an iOS app using a Storyboard. And I had to add custom keyboard for my own app. For designing keyboard I had soo many difficulties(Autolayout is an art, not a science.) But finally I fixed. Then I looked everywhere to use keyboard like a subview. (I did not want to add keyboard like target but just subview.) Soo, Here is what I ended up doing to accomplish everything. The only thing you need to consider in addition to this is to think a basic subview and remove classic keyboard from UItextField.
1- So, I added -Content View- to my View Controller in StoryBoard and I added all buttons that I need for my own keyboard. Then in my ViewController class, to make it add buttons  to UITextField I wrote:
@IBAction func addBtnLabel(sender: AnyObject) {
     txtFieldNumber.text = txtFieldNumber.text?.stringByAppendingString(sender.titleLabel!!.text!
}
Then for my delete button I wrote:
@IBAction func deleteBtnLabel(sender: AnyObject) {
    Â
    if (txtFieldNumber == 0) {
      // textField is empty
      print("text field is empty")
    }
    else{
      //txtFieldNumber.text = txtFieldNumber.text?.
      var name: String = txtFieldNumber.text!
      var truncated = String(name.characters.dropLast())
      txtFieldNumber.text = truncated
    }
  }
Also do NOT forget the removing keyboard! I wrote some sort of trick to remove standard keyboard in viewDidLoad:
 keyboardToPost.backgroundColor = UIColor(red: 98/255 , green: 102/255 , blue: 102/255 , alpha: 1.0)    Â
    // initialize custom keyboard
    let keyboardView = Keyboard(frame: CGRect(x: 0, y: 0, width: 0, height: 0))
    txtFieldNumber.inputView = keyboardView
Thats what I ended up.
All files are in my github page with full version of it: https://github.com/rozeridilar/customKeyboard
If you have any questions, don’t hesitate to contact me!