如何处理工具栏中的IQKeyboardManager完成按钮操作?

问题描述 投票:9回答:4

我是ios的新手,我在iqkeyboardmanager上工作,我想在IQKeyboardManager中访问Done按钮动作。

ios swift iqkeyboardmanager
4个回答
12
投票

你可以使用UITextViewDelegate

func textFieldDidEndEditing(_ textField: UITextField) {

 }

17
投票

您可以处理完成,下一个和上一个按钮的点击

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

8
投票

你可以导入

import IQKeyboardManager

在所需的文件中,之后

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

这里vc1Textfield是我的textfield和doneButtonClicked定义如下:

@objc func doneButtonClicked(_ sender: Any) { }

希望有人帮助!!!快乐编码....


3
投票

我将尝试以更方便的方式描述:

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
   }
}
© www.soinside.com 2019 - 2024. All rights reserved.