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

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

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

>当我点击文本字段中有一个UIDatePicker来屏幕.
>设置UIDate选择器仅显示时间 – 不是日期.
>将选定的UIDatePicker时间放在文本框中.
>当我点击按钮时,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.

    }

}

解决方法

您在文本字段上调用resignFirstResponder:
@IBAction func DoneButton(sender: UIButton) {
    dateField.resignFirstResponder()
}

此外,拥有相同名称方法属性不是一个好主意 – 不能确定优先级,但有可能在某些时候会令人困惑.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...