How can I add a toolbar above the keyboard? How can I add a toolbar above the keyboard? ios ios

How can I add a toolbar above the keyboard?


UIToolbar* numberToolbar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, [[UIScreen mainScreen] bounds].size.width, 50)];numberToolbar.barStyle = UIBarStyleBlackTranslucent;numberToolbar.items = [NSArray arrayWithObjects:                               [[UIBarButtonItem alloc]initWithTitle:@"Cancel" style:UIBarButtonItemStyleBordered target:self action:@selector(cancelNumberPad)],                               [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil],                               [[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(doneWithNumberPad)],                               nil];[numberToolbar sizeToFit];phonenumberTextField.inputAccessoryView = numberToolbar;

To Dismiss Keyboard:

[[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil];

Swift 3:

let numberToolbar = UIToolbar(frame: CGRectMake(0, 0, UIScreen.mainScreen().bounds.width, 50))numberToolbar.barStyle = UIBarStyle.DefaultnumberToolbar.items = [            UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.Plain, target: self, action: "cancelNumberPad"),            UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil),            UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.Plain, target: self, action: "doneWithNumberPad")]    numberToolbar.sizeToFit()    phonenumberTextField.inputAccessoryView = numberToolbar

Swift 4.2:

let numberToolbar = UIToolbar(frame:CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: 50))numberToolbar.barStyle = .defaultnumberToolbar.items = [UIBarButtonItem(title: "Cancel", style: .plain, target: self, action: #selector(cancelNumberPad)),UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil),UIBarButtonItem(title: "Done", style: .plain, target: self, action: #selector(doneWithNumberPad))]numberToolbar.sizeToFit()phonenumberTextField.inputAccessoryView = numberToolbar...@objc func cancelNumberPad() {    //Cancel with number pad}@objc func doneWithNumberPad() {    //Done with number pad}


You do not need to do this in code anymore.

  1. Just simply drag UIView to the top bar of current scene and customize it as you want.

enter image description here

  1. In code simply put IBOutlet for both: toolbarView and textView and make connections.

    @IBOutlet private var toolbarView: UIView!@IBOutlet private var textView: UITextView!
  2. In viewDidLoad setup your toolbarView as accessoryView of your UItextView.

    override func viewDidLoad() {    super.viewDidLoad()    textView.inputAccessoryView = toolbarView}

The result is following:

enter image description hereenter image description here


For swift (1.2):

let numberToolbar = UIToolbar(frame: CGRectMake(0, 0, self.view.frame.size.width, 50))numberToolbar.barStyle = UIBarStyle.DefaultnumberToolbar.items = [    UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.Plain, target: self, action: "keyboardCancelButtonTapped:"),    UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil),    UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.Plain, target: self, action: "keyboardDoneButtonTapped:")]numberToolbar.sizeToFit()yourTextView.inputAccessoryView = numberToolbar