How to add done button on keyboard on top of keyboard in IOS?

前端 未结 8 1557
悲哀的现实
悲哀的现实 2020-12-08 04:04

I want to add the Done button on the top of keyboard on right side in iOS for a textView.Please tell me how can i do that?

I w

相关标签:
8条回答
  • 2020-12-08 04:58

    This Solution For Swift 4

    override func viewDidLoad() {
       super.viewDidLoad()
       //init toolbar
       let toolbar:UIToolbar = UIToolbar(frame: CGRect(x: 0, y: 0,  width: self.view.frame.size.width, height: 30))
       //create left side empty space so that done button set on right side
       let flexSpace = UIBarButtonItem(barButtonSystemItem:    .flexibleSpace, target: nil, action: nil)
       let doneBtn: UIBarButtonItem = UIBarButtonItem(title: “Done”, style: .done, target: self, action: Selector(“doneButtonAction”))
       toolbar.setItems([flexSpace, doneBtn], animated: false)
       toolbar.sizeToFit()
       //setting toolbar as inputAccessoryView
       self.textField1.inputAccessoryView = toolbar
       self.textField2.inputAccessoryView = toolbar
    }
    func doneButtonAction() {
       self.view.endEditing(true)
    }
    
    0 讨论(0)
  • 2020-12-08 05:01

    This Solution For Swift3/4

    Add This line To your Project As a extension Your Problem is solved.

      extension UITextField{
    
            @IBInspectable var doneAccessory: Bool{
                get{
                    return self.doneAccessory
                }
                set (hasDone) {
                    if hasDone{
                        addDoneButtonOnKeyboard()
                    }
                }
            }
    
            func addDoneButtonOnKeyboard()
            {
                let doneToolbar: UIToolbar = UIToolbar(frame: CGRect.init(x: 0, y: 0, width: UIScreen.main.bounds.width, height: 50))
                doneToolbar.barStyle = .default
    
                let flexSpace = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
                let done: UIBarButtonItem = UIBarButtonItem(title: "Done", style: .done, target: self, action: #selector(self.doneButtonAction))
    
                let items = [flexSpace, done]
                doneToolbar.items = items
                doneToolbar.sizeToFit()
    
                self.inputAccessoryView = doneToolbar
            }
    
            @objc func doneButtonAction() {
                self.resignFirstResponder()
            }
    
        }
    

    Before extension

    After extension

    0 讨论(0)
提交回复
热议问题