如何处理工具栏中的 IQKeyboardManager 完成按钮操作?
Posted
技术标签:
【中文标题】如何处理工具栏中的 IQKeyboardManager 完成按钮操作?【英文标题】:How to Handle IQKeyboardManager Done button action in toolbar? 【发布时间】:2017-10-26 09:33:24 【问题描述】:我是 ios 新手,我在 iqkeyboardmanager 上工作,我想在 IQKeyboardManager 中访问完成按钮操作。
【问题讨论】:
好吧,我认为您无法处理 IQKeyboard 中的完成按钮,但如果您想执行某些操作,您可以在键盘中的Return key
上设置自定义操作
但我也想处理完成按钮操作
【参考方案1】:
您可以处理完成、下一个和上一个按钮的点击
[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
【讨论】:
在使用上述方法时,我在 swift “'UITextField' 类型的值没有成员 'keyboardToolbar'”中遇到错误 @Lalit Kumar 我收到此错误 - 在“IQDropDownTextField *”类型的对象上找不到属性“keyboardToolbar” 在标头中添加#import "IQKeyboardManager.h" 后它可以工作。 :) 工作就像一个魅力。享受这一天。【参考方案2】:你可以使用 UITextViewDelegate
func textFieldDidEndEditing(_ textField: UITextField)
【讨论】:
但是即使用户没有点击完成按钮,这个委托函数也会被调用。我只需点按屏幕,此功能也会触发。 这个委托可能会从键盘的返回键调用,所以不是很好的解决方案。【参考方案3】:你可以导入
import IQKeyboardManager
在所需文件中及之后
vc1Textfield.addDoneOnKeyboard(withTarget: self, action: #selector(doneButtonClicked))
这里 vc1Textfield 是我的文本字段,doneButtonClicked 定义如下:
@objc func doneButtonClicked(_ sender: Any)
希望对某人有所帮助!!!快乐编码......
【讨论】:
【参考方案4】:我会尽量用更方便的方式描述:
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
【讨论】:
【参考方案5】:首先:
import the IQKeyboardManager.h
然后:
[self.textField.keyboardToolbar.doneBarButton setTarget:self action:@selector(doneAction:)];
【讨论】:
【参考方案6】:xcode 11。 用代码制作Action连接textField。
@IBAction func yourName(_ sender: Any)
// Your code
Connections inspector screen
【讨论】:
以上是关于如何处理工具栏中的 IQKeyboardManager 完成按钮操作?的主要内容,如果未能解决你的问题,请参考以下文章