我正在使用IQKeyboardManager,并且为完成按钮添加了自定义操作
txtfield.addDoneOnKeyboard(withTarget: self, action: #selector(doneButtonClicked), titleText: "Next")
IQKeyboardManager.shared().toolbarDoneBarButtonItemText = "Next"
@objc func doneButtonClicked(_ sender: Any) {
// do stuff
}
在此调用操作,一切正常。但是完成按钮的标题是DONE(完成)(蓝色)。
“下一步”在标题栏的中间显示在键盘上。如何更改完成按钮的文本/颜色?如果我不对任何特定的文本字段添加任何操作,则第二行可以正常工作,但是只要我添加操作,都会忽略完成按钮的自定义名称。
有帮助吗?
答案 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)