使用 IQKeyBoardManager 时键盘 titleBarButton 的属性文本出现问题
problem with attributed text for keyboard titleBarButton when using IQKeyBoardManager
我在 Swift 中使用 IQKeyboardManager。
我在我的日期选择器上添加了一个取消按钮。
一切正常,但我遇到了取消按钮的属性文本未生效的问题。我究竟做错了什么?
这是一个代码片段
cell.field.attributedPlaceholder = NSAttributedString(string: "Cancel",
attributes: [.foregroundColor: UIColor.black,
.font: UIFont.boldSystemFont(ofSize: 12)])
cell.field.keyboardToolbar.titleBarButton.setTarget(self,
action:#selector(datePickerWasCanceled(sender:)))
这是当前结果的示例屏幕截图 -- 我原以为取消应该是黑色和粗体。
使用 UIBarButtonItem 而不是 attributedPlaceholder 并且space任一侧都灵活,这样您就可以将它放在工具栏的中间。
var items: [UIBarButtonItem] = []
let flexSpace = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
let cancel: UIBarButtonItem = UIBarButtonItem(title: "Cancel", style: .done, target: self, action: #selector(self.datePickerWasCanceled))
cancel.setTitleTextAttributes([
NSAttributedStringKey.font: UIFont.boldSystemFont(ofSize: 17.0),
NSAttributedStringKey.foregroundColor: UIColor.blue], for: .normal)
items.append(flexSpace)
items.append(cancel)
items.append(flexSpace)
cell.field.keyboardToolbar.items = items
cell.field.keyboardToolbar.sizeToFit()
@objc func datePickerWasCanceled() {
cell.field.resignFirstResponder()
}
cell.field.attributedPlaceholder = NSAttributedString(string: "Cancel")
cell.field.keyboardToolbar.titleBarButton.titleFont = UIFont.boldSystemFont(ofSize: 17.0)
cell.field.keyboardToolbar.titleBarButton.selectableTitleColor = UIColor.black
cell.field.keyboardToolbar.titleBarButton.setTarget(self, action:#selector(datePickerDidCancel(sender:))
我在 Swift 中使用 IQKeyboardManager。 我在我的日期选择器上添加了一个取消按钮。 一切正常,但我遇到了取消按钮的属性文本未生效的问题。我究竟做错了什么? 这是一个代码片段
cell.field.attributedPlaceholder = NSAttributedString(string: "Cancel",
attributes: [.foregroundColor: UIColor.black,
.font: UIFont.boldSystemFont(ofSize: 12)])
cell.field.keyboardToolbar.titleBarButton.setTarget(self,
action:#selector(datePickerWasCanceled(sender:)))
这是当前结果的示例屏幕截图 -- 我原以为取消应该是黑色和粗体。
使用 UIBarButtonItem 而不是 attributedPlaceholder 并且space任一侧都灵活,这样您就可以将它放在工具栏的中间。
var items: [UIBarButtonItem] = []
let flexSpace = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
let cancel: UIBarButtonItem = UIBarButtonItem(title: "Cancel", style: .done, target: self, action: #selector(self.datePickerWasCanceled))
cancel.setTitleTextAttributes([
NSAttributedStringKey.font: UIFont.boldSystemFont(ofSize: 17.0),
NSAttributedStringKey.foregroundColor: UIColor.blue], for: .normal)
items.append(flexSpace)
items.append(cancel)
items.append(flexSpace)
cell.field.keyboardToolbar.items = items
cell.field.keyboardToolbar.sizeToFit()
@objc func datePickerWasCanceled() {
cell.field.resignFirstResponder()
}
cell.field.attributedPlaceholder = NSAttributedString(string: "Cancel")
cell.field.keyboardToolbar.titleBarButton.titleFont = UIFont.boldSystemFont(ofSize: 17.0)
cell.field.keyboardToolbar.titleBarButton.selectableTitleColor = UIColor.black
cell.field.keyboardToolbar.titleBarButton.setTarget(self, action:#selector(datePickerDidCancel(sender:))