Как обработать действие кнопки IQKeyboardManager Done на панели инструментов?

Я новичок в ios, я работаю на iqkeyboardmanager и хочу получить доступ к действию кнопки Done в IQKeyboardManager.

4 ответа

Решение

Вы можете использовать UITextViewDelegate

func textFieldDidEndEditing(_ textField: UITextField) {

 }

Вы можете обрабатывать клики готовой, следующей и предыдущей кнопки

[textField.keyboardToolbar.previousBarButton setTarget:self action:@selector(previousAction:)];
[textField.keyboardToolbar.nextBarButton setTarget:self action:@selector(nextAction:)];
[textField.keyboardToolbar.doneBarButton setTarget:self action:@selector(doneAction:)];

В скором времени:

customField.keyboardToolbar.doneBarButton.setTarget(self, action: #selector(doneButtonClicked))

func doneButtonClicked(_ sender: Any) {
        //your code when clicked on done
}

Вы можете импортировать

импортировать IQKeyboardManager

в необходимом файле и после этого

vc1Textfield.addDoneOnKeyboard(withTarget: self, action: #selector(doneButtonClicked))

здесь vc1Textfield - мое текстовое поле, а определение doneButtonClicked приведено ниже:

@objc func doneButtonClicked (_ отправитель: любой) { }

Надеюсь, это поможет кому-то! Удачного кодирования....

Я постараюсь описать более удобным способом:

import IQKeyboardManagerSwift

class EditPostViewCell: UITableViewCell {

   @IBOutlet weak var commentTextView: UITextView!


   override func awakeFromNib() {
      IQKeyboardManager.shared.toolbarDoneBarButtonItemText = "Send Comment"
      commentTextView.delegate = self
   }

   @objc func didPressOnDoneButton() {
      commentTextView.resignFirstResponder()
      sendComment()
   }

}

extension EditPostViewCell: UITextViewDelegate {

   public func textViewDidBeginEditing(_ textView: UITextView) {
      let invocation = IQInvocation(self, #selector(didPressOnDoneButton))
      textView.keyboardToolbar.doneBarButton.invocation = invocation
   }
}

Xcode 11. Сделайте действие подключения textField с кодом.

@IBAction func yourName(_ sender: Any){
// Your code
} 

Экран инспектора подключений

Первый: import the IQKeyboardManager.h

Потом:

[self.textField.keyboardToolbar.doneBarButton setTarget:self action:@selector(doneAction:)];

Другие вопросы по тегам