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!