如何添加完成动作并更改完成的文本?

时间:2019-06-20 06:00:22

标签: swift xcode iqkeyboardmanager

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

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

IQKeyboardManager.shared().toolbarDoneBarButtonItemText = "Next"

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

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

“下一步”在标题栏的中间显示在键盘上。如何更改完成按钮的文本/颜色?如果我不对任何特定的文本字段添加任何操作,则第二行可以正常工作,但是只要我添加操作,都会忽略完成按钮的自定义名称。

有帮助吗?

IQKeyboardManager in github

2 个答案:

答案 0 :(得分:2)

使用以下内容:

 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")

还有什么? titleText设置了toolbar.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
        }

答案 1 :(得分:0)

尝试这个。

  1. 导入IQKeyboardManagerSwift
  2. IQKeyboardManager.shared.toolbarDoneBarButtonItemText =“ NEXT”

请参见下图,在Xcode 10.1中具有NEXT按钮。

enter image description here