Skip to content

Instantly share code, notes, and snippets.

@nuclearghost
Created December 23, 2015 02:13
Show Gist options
  • Save nuclearghost/c20b2afb95ef0353a063 to your computer and use it in GitHub Desktop.
Save nuclearghost/c20b2afb95ef0353a063 to your computer and use it in GitHub Desktop.
Add done button to Numeric Keypad
@IBOutlet weak var numberTextField: UITextField!
@IBOutlet weak var numberTextField2: UITextField!
//Assumes that the tag's of the views are sequential
override func viewDidLoad() {
numberTextField.tag = 1
numberTextField.tag = 2
addDoneButtonTo(numberTextField)
addDoneButtonTo(numberTextField2)
}
private func addDoneButtonTo(textField: UITextField) {
let flexBarButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil)
let doneBarButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Done, target: self, action: "didTapDone:")
doneBarButton.tag = textField.tag + 1000
let keyboardToolbar = UIToolbar()
keyboardToolbar.sizeToFit()
keyboardToolbar.items = [flexBarButton, doneBarButton]
textField.inputAccessoryView = keyboardToolbar
}
func didTapDone(sender: UIBarButtonItem?) {
if let senderView = sender {
let nextTage=senderView.tag-1000+1;
let nextResponder=self.view.viewWithTag(nextTage) as UIResponder!
if (nextResponder != nil){
nextResponder?.becomeFirstResponder()
} else {
let currentResponder=self.view.viewWithTag(senderView.tag-1000) as! UITextField!
currentResponder.endEditing(true)
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment