Swift - 2个DatePickers

时间:2015-06-21 09:48:21

标签: ios swift datepicker keyboard

我有2个日期选择器连接到2个不同的文本字段,两个都在单页中实现,并且都具有相同的代码(几乎是代码中的一些var以收集数据)。 第一个就像魅力一样。但问题是当点击第二个文本字段时,显示标准文本键盘,当我点击文本字段时,我添加了一个代码来解除键盘(从另一个文本字段中解除实际键盘),所以这个键盘被解雇了。 当我再次点击文本字段时弹出日期选择器时,事情变得更加怪异。 第一个日期选择器的代码:

@IBAction func CallPicker(sender: UITextField) {

        var datePickerView:UIDatePicker = UIDatePicker()
        datePickerView.datePickerMode = UIDatePickerMode.Time
        sender.inputView = datePickerView
        datePickerView.addTarget(self, action: Selector("datePickerValueChanged:"), forControlEvents: UIControlEvents.ValueChanged)
    }
    func datePickerValueChanged(sender: UIDatePicker) {
        var dateformatter = NSDateFormatter()
        dateformatter.dateStyle = NSDateFormatterStyle.ShortStyle
        dateformatter.dateFormat = "hh:mm"
        timeField.text = dateformatter.stringFromDate(sender.date)
    }

第二个日期选择器的代码:

@IBAction func secondCallPicker(sender: UITextField) {

        var datePickerView2:UIDatePicker = UIDatePicker()
        datePickerView2.datePickerMode = UIDatePickerMode.Time
        sender.inputView = datePickerView2
        datePickerView2.addTarget(self, action: Selector("secondPickerValueChanged:"), forControlEvents: UIControlEvents.ValueChanged)
    }

    func secondPickerValueChanged(sender: UIDatePicker) {
        var dateformatter = NSDateFormatter()
        dateformatter.dateStyle = NSDateFormatterStyle.ShortStyle
        dateformatter.dateFormat = "hh:mm"
        secondTimeLabel.text = dateformatter.stringFromDate(sender.date)

    }

关掉键盘:

override func viewDidLoad() {
        super.viewDidLoad()

        var tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "DismissKeyboard")
        view.addGestureRecognizer(tap)

我添加了这个功能:

override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(animated)}


    func DismissKeyboard(){
        view.endEditing(true)
    }

我做错了什么?以及如何在第一次点击时获取第二个文本的日期选择器?

0 个答案:

没有答案