是否有人遇到UIToolbar中的UIBarButtonItem文本(在UIDatePicker中调用)在您单击此UIBarButtonItem之前不可见的问题?什么可能导致这个问题?
Here you can not see the buttons
But when you click on the screen where it is supposed to be you can see that it appears
我尝试了一切,但问题仍然是每个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的新人。所以我非常感谢你的帮助!提前致谢。
试试这个代码。这里我在textfield开始编辑中添加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]
}