ios - 工具栏中的完成按钮问题
问题描述
我添加了一个带有完成和取消按钮的工具栏,一切正常。突然,完成和取消文本被隐藏了。按钮存在并且可点击,但没有文本。我尝试了一切,但同样的问题。
这是关于工具栏的代码:
func createDatePicker(){
//format for datepicker display
datePicker.datePickerMode = .date
datePicker.minimumDate = Date()
datePicker.backgroundColor = UIColor.white
// ToolBar
let toolBar = UIToolbar()
toolBar.barStyle = UIBarStyle.default
toolBar.isTranslucent = true
toolBar.backgroundColor = UIColor(red: 253/255, green: 184/255, blue: 20/35, alpha: 1.0)
//datePicker.tintColor = UIColor.blue
toolBar.tintColor = UIColor.blue
toolBar.sizeToFit()
toolBar.isUserInteractionEnabled = true
//add a done button on this toolbar
let doneButton = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(doneClicked))
let spaceButton = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
let cancelButton = UIBarButtonItem(barButtonSystemItem: .cancel, target: self, action: #selector(cancelClicked))
toolBar.setItems([cancelButton,spaceButton,doneButton], animated: true)
testfield.inputAccessoryView = toolBar
testfield.inputView = datePicker
self.view.addSubview(testfield)
}
这是结果:
解决方案
这是根据您的代码使用的代码,它对我来说非常好
import UIKit
class ViewController: UIViewController {
var datePicker = UIDatePicker()
var testfield: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
createDatePicker()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func createDatePicker(){
// TextField
testfield = UITextField(frame: CGRect(x: 20, y: 100, width: 300, height: 40))
testfield.placeholder = "testfiled"
self.view.addSubview(testfield)
//format for datepicker display
datePicker.datePickerMode = .date
datePicker.minimumDate = Date()
datePicker.backgroundColor = UIColor.white
// ToolBar
let toolBar = UIToolbar()
toolBar.barStyle = UIBarStyle.default
toolBar.isTranslucent = true
toolBar.backgroundColor = UIColor(red: 253/255, green: 184/255, blue: 20/35, alpha: 1.0)
//datePicker.tintColor = UIColor.blue
toolBar.tintColor = UIColor.blue
toolBar.sizeToFit()
toolBar.isUserInteractionEnabled = true
//add a done button on this toolbar
let doneButton = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(doneClicked))
let spaceButton = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
let cancelButton = UIBarButtonItem(barButtonSystemItem: .cancel, target: self, action: #selector(cancelClicked))
toolBar.setItems([cancelButton,spaceButton,doneButton], animated: true)
testfield.inputAccessoryView = toolBar
testfield.inputView = datePicker
}
@objc func doneClicked(){
}
@objc func cancelClicked(){
}
}
请尝试在设备和模拟器上进行测试,或者在构建之前尝试 clean(shift+cmd+k) 项目,这在大多数情况下都有帮助。
结果
推荐阅读
- sql - SQL 多个左连接:A 到 B,然后 A 到 C
- python - 如何有效地将时间/日期字符串解析为日期时间对象?
- c# - SQLite 事务回滚与内存数据库不同
- r - write.csv 给出“文件错误(文件,ifelse(追加,“a”,“w”)):无法打开连接”
- java - 获取打印字符串之间的空格
- mysql - MYSQL 过程:循环遍历 Text 列的不同值并创建临时表
- excel - 为什么 CSV 文件在保存后会损坏?
- powerbi - PowerBI-Drill Down Map PRO by ZoomCharts 颜色和光环功能
- imagemagick - 如何使用imagemagick复制图像行并将其插入指定位置n次?
- python - 使用 torch.nn.DataParallel() 时如何访问类对象?