gpt4 book ai didi

swift - UIDatePicker:选择当前日期(快速)

转载 作者:行者123 更新时间:2023-11-30 10:44:51 24 4
gpt4 key购买 nike

我有一个UIDatePicker,其中一些日期是由初始值设置的。通过 addTarget,我监听了 valueChanged 事件,并且当轮子旋转时一切正常。

我希望允许用户直接选择初始日期(例如,通过单击它)。但现在,只有当车轮转动时,事件才会发生。要输入当前日期,用户必须:

  1. 输入新日期
  2. 转到上一个日期

我的代码:

class Picker {
init() {
let datePicker = UIDatePicker()
datePicker.setDate(Date(), animated: false) // Set initial date
datePicker.addTarget(self, action: #selector(handleDatePicker(sender:)), for: .valueChanged)
}

@objc func handleDatePicker(sender: UIDatePicker) {
print(sender.date)
}
}

Picker()

屏幕截图:

enter image description here

解决方案:

最正确的解决方案是在 UIToolBar 中添加 Done 按钮。代码可以在这里找到:example with UIToolBar

最佳答案

点击 datePicker 中的完成按钮选择第一个索引值

func pickUp(_ textField : UITextField){
// UIPickerView
self.myPickerView = UIPickerView(frame:CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 216))
self.myPickerView.delegate = self
self.myPickerView.dataSource = self
self.myPickerView.backgroundColor = UIColor.white
textField.inputView = self.myPickerView

// ToolBar
let toolBar = UIToolbar()
toolBar.barStyle = .default
toolBar.isTranslucent = true
toolBar.tintColor = UIColor.darkGray
toolBar.sizeToFit()

// Adding Button ToolBar
let doneButton = UIBarButtonItem(title: "Done", style: .plain, target: self, action: #selector(UrVC.doneClick))
let spaceButton = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
let cancelButton = UIBarButtonItem(title: "Cancel", style: .plain, target: self, action: #selector(UrVC.cancelClick))
toolBar.setItems([cancelButton, spaceButton, doneButton], animated: false)
toolBar.isUserInteractionEnabled = true
textField.inputAccessoryView = toolBar

}

@objc func doneClick() {
pickerTxtfld.resignFirstResponder()
let indexPath = myPickerView.selectedRow(inComponent: 0)
pickerTxtfld.text = dataArray[indexPath]
}

@objc func cancelClick() {
pickerTxtfld.resignFirstResponder()
}

关于swift - UIDatePicker:选择当前日期(快速),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55946261/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com