我的swift应用程序使用UIDatePicker为用户选择日期。但是,我想设置它以便在用户忘记插入时显示“没有插入日期”。
问题在于,当我设置一个if
语句,根据datePicker的日期是否等于当前日期显示警告时,它根本无法识别它。这是我的代码:
if datePicker.date == NSDate() {
warnL.text = "NO DATE INSERTED"
}
我该怎么办? 任何帮助将非常感谢!谢谢。
答案 0 :(得分:2)
有一种更简单的方法可以知道今天的日期是否使用NSCalendar
上的方法:
if NSCalendar.currentCalendar().isDateInToday(datePicker.date) {
warnL.text = "NO DATE INSERTED"
}
负责日历的时区,区域设置和类型。
答案 1 :(得分:0)
NSDate
返回所有日期,包括时间,因此它永远不会等于您datePicker
中的时间。
您可以定义变量,告诉您日期是否已更改:
var dateWasChanged = false
然后您可以为change事件注册处理程序:
func viewDidLoad() {
datePicker.addTarget(self, action: #selector(YourViewController.handleDatePicker), forControlEvents: UIControlEvents.ValueChanged)
}
func handleDatePicker() {
dateWasChanged = true
}
之后您可以检查dateWasChanged
是否为true
并显示您的信息。