How to add done button on keyboard on top of keyboard in IOS?
Hope this help :)
UIToolbar* keyboardToolbar = [[UIToolbar alloc] init];[keyboardToolbar sizeToFit];UIBarButtonItem *flexBarButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];UIBarButtonItem *doneBarButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(yourTextViewDoneButtonPressed)];keyboardToolbar.items = @[flexBarButton, doneBarButton];self.yourTextView.inputAccessoryView = keyboardToolbar;
and then add yourTextViewDoneButtonPressed method
-(void)yourTextViewDoneButtonPressed{ [self.yourTextView resignFirstResponder];}
It can be done using storyboard:
- Add UITextField to UIViewController view.
- Add UIToolbar in the first level of UIViewController
- Add UIBarButtonItem into the UIToolbar.
- Connect UItoolbar to the code using IBOutlet.
- Connect UIBarButtonItem to the code using IBAction (as didClick).
- Make the UITextField will be delegating to UIViewController.
- In the didClick function end editing (view.endEditing(true))
- In the delegate function textFieldShouldBeginEditing should be: textField.inputAccessoryView = toolbar and returns true.
Swift 3:
func setDoneOnKeyboard() { let keyboardToolbar = UIToolbar() keyboardToolbar.sizeToFit() let flexBarButton = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil) let doneBarButton = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(InsertStatusVC.dismissKeyboard)) keyboardToolbar.items = [flexBarButton, doneBarButton] self.fullNameTextField.inputAccessoryView = keyboardToolbar}@objc func dismissKeyboard() { view.endEditing(true)}