Кнопка «Готово» завершает работу приложения - PullRequest
0 голосов
/ 03 июля 2018

Мне нужен был способ отклонить клавиатуру, когда я набираю UITextField. Я посмотрел на Google и нашел на Medium:

https://medium.com/@KaushElsewhere/how-to-dismiss-keyboard-in-a-view-controller-of-ios-3b1bfe973ad1

Каждый раз, когда я нажимаю кнопку «Готово», приложение вылетает. Любая помощь будет принята с благодарностью.

Код:

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)
}

1 Ответ

0 голосов
/ 03 июля 2018

Вам необходимо добавить @objc к вашей функции doneButtonAction, так как это является причиной ее сбоя. И используйте #selector вместо Selector.

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
}

@objc func doneButtonAction() {
    self.view.endEditing(true)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...