用于文本字段输入的Swift UIDatePicker - 如何使UIDatePicker消失?

MGa*_*ann 16 ios swift

这是我第一次尝试Swift或iPhone应用程序,所以不用说我不知道​​如何在这一点上做很多事情.

现在我有一个带有文本字段和按钮的视图控制器.我已经设法找到示例代码几乎完成我需要的东西.我想做以下事情:

  1. 当我点击进入文本字段时,屏幕上会出现一个UIDatePicker.
  2. 将UIDate选取器设置为仅显示时间 - 而不是日期.
  3. 将选定的UIDatePicker时间放在文本字段中.
  4. 点击按钮后,UIDatePicker会消失.

1到3正在工作.但我无法弄清楚如何让UIDatePicker消失,如果再次点击进入文本字段,仍然会回到屏幕上.

import UIKit

class ViewController: UIViewController {


    @IBOutlet weak var dateField: UITextField!

    @IBAction func dateField(sender: UITextField) {

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

    }
    @IBAction func DoneButton(sender: UIButton) {

        //How to make datepicker disappear???
    }

    func handleDatePicker(sender: UIDatePicker) {
        var timeFormatter = NSDateFormatter()
        timeFormatter.dateStyle = .NoStyle
        timeFormatter.timeStyle = .ShortStyle
        dateField.text = timeFormatter.stringFromDate(sender.date)
    }

    override func viewDidLoad() {
     super.viewDidLoad()
     // Do any additional setup after loading the view, typically from a nib.

    }

}
Run Code Online (Sandbox Code Playgroud)

Nat*_*ook 6

你打电话resignFirstResponder给文本字段:

@IBAction func DoneButton(sender: UIButton) {
    dateField.resignFirstResponder()
}
Run Code Online (Sandbox Code Playgroud)

另外,拥有一个具有相同名称的方法和属性并不是一个好主意 - 不确定那里的优先级,但在某些时候它可能会令人困惑.