ios - 如何使 UIBarButtonItem 文本在 UIPickerView 中可见?
问题描述
有没有人遇到过 UIToolbar 中的 UIBarButtonItem 文本(在 UIDatePicker 中调用)在单击此 UIBarButtonItem 之前不可见的问题?什么可能导致这个问题?
我尝试了一切,但问题仍然与每个 UIPickerView 相关(包括 UIDatePicker)
这是我的实现:
@objc func createDatePicker() {
datePicker.datePickerMode = .date
//ToolBar
let toolbar = UIToolbar();
toolbar.sizeToFit()
let doneButton = UIBarButtonItem(title: "Done", style: .plain, target: self, action: #selector(doneDatePicker));
let spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.flexibleSpace, target: nil, action: nil)
let cancelButton = UIBarButtonItem(title: "Cancel", style: .plain, target: self, action: #selector(cancelDatePicker));
// I've tried to change color of the label, but it didn't help
//toolbar.tintColor = UIColor.black
toolbar.setItems([cancelButton,spaceButton,doneButton], animated: false)
dateTextfield.inputAccessoryView = toolbar
dateTextfield.inputView = datePicker
}
使用此代码,这些按钮是不可见的,但是当您单击这些按钮应该位于的位置时,会出现单击按钮的文本。但是有没有办法让它一直可见?这种行为的原因可能是什么?
我是ios的新手。所以我会非常感谢你的帮助!提前致谢。
解决方案
试试这个代码。在这里,我在文本字段中添加 DatePicker 开始编辑。
func openDatePickerForTextField(_ sender: UITextField) {
//move view if
moveViewYPositionForDatePicker()
let datePickerView = UIDatePicker()
datePickerView.datePickerMode = .date
sender.inputView = datePickerView
datePickerView.addTarget(self, action: #selector(handleDatePicker(sender:)), for: .valueChanged)
addKeyboardToolBar(onTextfield: sender, onPicker: datePickerView)
}
//MARK:- Add done button on Picker View
func addKeyboardToolBar(onTextfield textField : UITextField, onPicker pickerView : UIDatePicker) {
let keyboardToolBar = UIToolbar(frame: CGRect(x: CGFloat(0), y: CGFloat(0), width: CGFloat(pickerView.frame.size.width), height: CGFloat(25)))
keyboardToolBar.sizeToFit()
keyboardToolBar.barStyle = .black
textField.inputAccessoryView = keyboardToolBar
let nextButton = UIBarButtonItem(title: "Done", style: .plain, target: self, action: #selector(doneButtonPressed))
keyboardToolBar.items = [UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil), nextButton]
}
推荐阅读
- sql - 客户随时间分析
- python - 通过快速傅里叶变换计算卷积积分
- javascript - 浏览链接时记住滚动位置,单击后退按钮时应用它
- go - 恐慌:接口转换:*不是接口X:缺少方法xxx
- javascript - Discord.js bot Cannot read property 'send' of undefined
- angular - angular如何将父组件的mat-select值传递给子组件?
- asp.net-mvc - 使用 ASP.NET Core MVC 从登录填充导航栏
- javascript - ReactJS:使用 react-jhipster 进行翻译
- amazon-web-services - Amazon RDS:如何限制 RDS 实例对 AWS Lambda 函数和对我的计算机的访问?
- docusignapi - Docusign - 开发者账号查询