Как обработать действие кнопки 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:)];