【发布时间】:2016-01-18 08:07:06
【问题描述】:
我试图隐藏我的日期选择器,直到我的 textField 被选中。我这样做只是为了我拥有的pickerView。但是,我无法找到使用 Swift 来显示然后隐藏文本字段上的 datePicker 的解决方案。
import UIKit
class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource, UITextFieldDelegate {
@IBOutlet weak var TeeTimes: UILabel!
@IBOutlet weak var textFieldDate: UITextField!
@IBOutlet weak var datePicker: UIDatePicker!
@IBOutlet weak var picker: UIPickerView! = UIPickerView()
@IBOutlet weak var textfieldCourse: UITextField!
var pickerData = ["Norman Course", "Riding Golf", "Dmob Course"]
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
picker.hidden = true;
self.textfieldCourse.delegate = self
self.picker.delegate = self
self.picker.dataSource = self
textfieldCourse.text = pickerData[0]
//Inputs the data into the array
datePicker.hidden = true;
datePicker.addTarget(self, action: Selector("datePickerChanged:"), forControlEvents: UIControlEvents.ValueChanged)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func numberOfComponentsInPickerView(pickerView: UIPickerView) ->Int {
return 1
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) ->Int {
return pickerData.count
}
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return pickerData[row]
}
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int){
textfieldCourse.text = pickerData[row]
picker.hidden = true
}
func textFieldShouldBeginEditing(textfield: UITextField) ->Bool {
picker.hidden = false
return false
}
func datePickerChanged(dataPicker: UIDatePicker) {
datePicker.hidden = false
let dateFormatter = NSDateFormatter()
dateFormatter.dateStyle = NSDateFormatterStyle.ShortStyle
let strDate = dateFormatter.stringFromDate(datePicker.date)
textFieldDate.text = strDate
}
}
【问题讨论】: