【发布时间】:2016-04-25 23:05:11
【问题描述】:
我正在创建一个应用程序,上面有一个 UITextField,当点击/单击它时,将显示一个从底部弹出的日期选择器。所述弹出面板有一个完成按钮,该按钮将在单击/点击时将选择的任何日期(默认为今天)应用到文本字段,最好是 YYYY-MM-DD 格式。
我一直在网上搜索,到目前为止,我已经看到了带有 IBAction 文本字段的示例,以及关于完成按钮如何工作的各种方式(并且大多数没有完成按钮),但我想知道如果我可以在下面的下拉菜单中回收或基于我的代码:
let wellheadPressTest : [String] = ["PSIG", "MPAG"]
var wellboreStatusPickerView = UIPickerView()
override func viewDidLoad() {
let wellboreStatusToolBar = UIToolbar()
let spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil)
let doneButtonWellbore = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.Plain, target: self, action: "donePickerWellbore")
wellboreStatusToolBar.barStyle = UIBarStyle.Default
wellboreStatusToolBar.translucent = true
wellboreStatusToolBar.tintColor = UIColor(red: 76/255, green: 217/255, blue: 100/255, alpha: 1)
wellboreStatusToolBar.sizeToFit()
wellboreStatusToolBar.setItems([spaceButton,spaceButton,doneButtonWellbore], animated: false)
wellboreStatusToolBar.userInteractionEnabled = true
wellboreStatusPickerView.delegate = self
self.samplingWaterFormOneView.textfieldWellbore.inputView = wellboreStatusPickerView
self.samplingWaterFormOneView.textfieldWellbore.inputAccessoryView = wellboreStatusToolBar
}
// Various Required PickerView functions
func donePickerWellbore(){
let row = wellboreStatusPickerView.selectedRowInComponent(0);
pickerView(wellboreStatusPickerView, didSelectRow: row, inComponent:0)
self.samplingWaterFormOneView.textfieldWellbore.resignFirstResponder()
}
这是我尝试过的:
var dateSampledPickerView = UIDatePicker()
override func viewDidLoad() {
let dateSampledPickerToolBar = UIToolbar()
let doneButtonDate = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.Plain, target: self, action: "donePickerDate")
dateSampledPickerToolBar.barStyle = UIBarStyle.Default
dateSampledPickerToolBar.translucent = true
dateSampledPickerToolBar.tintColor = UIColor(red: 76/255, green: 217/255, blue: 100/255, alpha: 1)
dateSampledPickerToolBar.sizeToFit()
dateSampledPickerToolBar.setItems([spaceButton,spaceButton,doneButtonDate], animated: false)
dateSampledPickerToolBar.userInteractionEnabled = true
dateSampledPickerView.datePickerMode = UIDatePickerMode.Date
dateSampledPickerView.addTarget(self, action: Selector("datePickerValueChanged"), forControlEvents: UIControlEvents.ValueChanged)
self.samplingWaterFormOneView.textfieldDateSampled.inputView = dateSampledPickerView
self.samplingWaterFormOneView.textfieldDateSampled.inputAccessoryView = dateSampledPickerToolBar
self.samplingWaterFormOneView.textfieldDateSampled.delegate = self
}
func datePickerValueChanged(sender:UIDatePicker) {
let dateFormatter = NSDateFormatter()
dateFormatter.dateStyle = "YYYY-MM-DD"
dateFormatter.timeStyle = NSDateFormatterStyle.NoStyle
self.samplingWaterFormOneView.textfieldDateSampled.text = dateFormatter.stringFromDate(sender.date)
}
func donePickerDate(){
self.samplingWaterFormOneView.textfieldDateSampled.resignFirstResponder()
}
当我在文本字段顶部时,上面的代码确实显示了一个带有日期选择器的弹出菜单,带有一个完成按钮,但文本字段没有获取日期。
编辑:还尝试修改datePickerValueChanged 使其没有发件人,并且还使用dateSampledPickerView 作为文本字段。没用。
在函数中加入 cmets 表明 datePickerValueChanged 函数没有被调用。
我做错了什么?
【问题讨论】:
标签: ios swift datepicker