我正在創建一個具有UITextField的應用程序,當點擊/單擊時,它將顯示將從底部彈出的日期選擇器。所述彈出式面板具有完成按鈕,其將在點擊/點擊時將所選日期(默認爲今天)應用於文本字段,優選爲YYYY-MM-DD格式。Swift:帶有完成按鈕的文本框上的彈出式DatePicker
我一直在圍繞網絡進行挖掘,到目前爲止,我已經看到了有關文本字段的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
爲文本字段。沒有工作。
在函數中添加註釋表明datePickerValueChanged
函數未被調用。
我在做什麼錯?
Hmmmm ...那是什麼我想也是,但顯然,「UIDatePicker的價值沒有成員代表」。 –
啊,我現在看到了這個問題。我會更新我的答案 – Devster101
謝謝,這讓我有些地方。現在我通過打印知道該函數正在被調用。但是,它不會更新文本字段。我嘗試打印'dateFormatter.stringFromDate(dateSampledPickerView.date)',但我什麼也沒有。 –