我如何添加 doneaction 并更改完成的文本?

How do i add doneaction and change the done text?

我正在使用 IQKeyboardManager 并为完成按钮添加了自定义操作

txtfield.addDoneOnKeyboard(withTarget: self, action: #selector(doneButtonClicked), titleText: "Next")

IQKeyboardManager.shared().toolbarDoneBarButtonItemText = "Next"

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

此处调用了操作,一切正常。但是完成按钮的标题是完成(蓝色)。

"Next" 在键盘中间显示为标题文本。如何更改完成按钮的 text/color?如果我不向任何特定的文本字段添加任何操作,则第二行可以完美运行,但每当我添加操作时,完成按钮的自定义名称将被忽略。

有什么帮助吗?

IQKeyboardManager in github

试试这个。

  1. 导入 IQKeyboardManagerSwift
  2. IQKeyboardManager.shared.toolbarDoneBarButtonItemText = "NEXT"

见下图 Xcode 10.1 中有 NEXT 按钮。

使用以下内容:

 let config = IQBarButtonItemConfiguration(title: "Next", action: #selector(doneButtonClicked))
txtfield.addKeyboardToolbar(withTarget: self, titleText: nil , rightBarButtonConfiguration: config, previousBarButtonConfiguration: nil, nextBarButtonConfiguration: nil)

//  any color you like
txtfield.keyboardToolbar.doneBarButton.setTitleTextAttributes([NSAttributedString.Key.foregroundColor: UIColor.red], for: UIControl.State.normal)

而不是:

txtfield.addDoneOnKeyboard(withTarget: self, action: #selector(doneButtonClicked), titleText: "Next")

还有什么? titleTexttoolbar.titleBarButton.title.

我从这里的 IQKeyboardManager 源代码中挑选了一些代码片段:

      //Title button
     toolbar.titleBarButton.title = titleText

toolbarDoneBarButtonItemText 集合的 doneBarButton.title

此处 IQKeyboardManager 的一些代码片段:

    if let rightConfig = rightBarButtonConfiguration {

        var done = toolbar.doneBarButton

        if rightConfig.barButtonSystemItem == nil && done.isSystemItem == false {
             done.title = rightConfig.title
             done.image = rightConfig.image
             done.target = target
             done.action = rightConfig.action
        }