将 var 设置为今天的日期
Set a var to today's date
我有一个 datePicker 字段,它不允许用户 select 将来的日期。我想我会使用 var maximumDate: NSDate?然后将其设置为等于我已经定义为 isToday 的 var(var maximumDate: NSDate? = isToday)。日期选择器已经出现(但不是 return selected 时的日期)。现在我需要将日期选择器限制为仅今天或过去的任何日期。这是我写的。我目前在定义 var isToday 和 var maximumDate: NSDate 的第一行有错误? = 今天。感谢您的协助。
var isToday = NSDate
var season = traSeason
var sport = traSport
var dispenseTo = ["Personnel", "Physician"]
var activeField = []
var datePickerView : UIDatePicker = UIDatePicker()
@IBOutlet var userLabel: UILabel!
@IBOutlet var teamLabel: UILabel!
@IBOutlet var enterDate: UITextField!
@IBAction func dateTapped(sender: UITextField) {
//code for what to do when date field is tapped
datePickerView.datePickerMode = UIDatePickerMode.Date
enterDate.inputView = datePickerView
datePickerView.addTarget(self, action: Selector("handleDatePicker:"), forControlEvents: UIControlEvents.ValueChanged)
}
func handleDatePicker(sender: UIDatePicker) {
var dateFormatter = NSDateFormatter()
var maximumDate: NSDate? = isToday
dateFormatter.dateFormat = "dd MMM yyyy"
enterDate.text = dateFormatter.stringFromDate(sender.date)
}
您只需将此行添加到您的 handleDatePicker 方法中即可将日期选择器 属性 maximumDate 设置为现在 (NSDate()) :
sender.maximumDate = NSDate()
您的代码没有意义。您正在创建一个全新的日期选择器,然后从未将其安装在您的视图层次结构中。您正在创建的日期选择器从不执行任何操作。
相反,您应该在 Interface Builder 中创建一个日期选择器,然后按住 Control 从该日期选择器拖动到视图控制器 class 的顶部,就在大括号内。这将导致 IB 提议创建一个 IBOutlet。然后在您的 viewWillAppear 方法中,您将配置插座中的现有日期选择器以设置最大日期。
这一行也没有意义:
var isToday = NSDate
它甚至应该做什么?看起来变量将设置为 NSDate class.
名字也很迷惑。对于以 "is" 开头的变量名称,我希望它是一个布尔值,如果某个日期是今天则为真,否则为假。
我建议改用这个:
let today = NSDate()
该代码创建了一个 NSDate 类型的常量,并将当前日期和时间存储到其中。 (编译器可以推断 today
是一个 NSDate,因为那是 NSDate()
初始化函数 returns。)
我有一个 datePicker 字段,它不允许用户 select 将来的日期。我想我会使用 var maximumDate: NSDate?然后将其设置为等于我已经定义为 isToday 的 var(var maximumDate: NSDate? = isToday)。日期选择器已经出现(但不是 return selected 时的日期)。现在我需要将日期选择器限制为仅今天或过去的任何日期。这是我写的。我目前在定义 var isToday 和 var maximumDate: NSDate 的第一行有错误? = 今天。感谢您的协助。
var isToday = NSDate
var season = traSeason
var sport = traSport
var dispenseTo = ["Personnel", "Physician"]
var activeField = []
var datePickerView : UIDatePicker = UIDatePicker()
@IBOutlet var userLabel: UILabel!
@IBOutlet var teamLabel: UILabel!
@IBOutlet var enterDate: UITextField!
@IBAction func dateTapped(sender: UITextField) {
//code for what to do when date field is tapped
datePickerView.datePickerMode = UIDatePickerMode.Date
enterDate.inputView = datePickerView
datePickerView.addTarget(self, action: Selector("handleDatePicker:"), forControlEvents: UIControlEvents.ValueChanged)
}
func handleDatePicker(sender: UIDatePicker) {
var dateFormatter = NSDateFormatter()
var maximumDate: NSDate? = isToday
dateFormatter.dateFormat = "dd MMM yyyy"
enterDate.text = dateFormatter.stringFromDate(sender.date)
}
您只需将此行添加到您的 handleDatePicker 方法中即可将日期选择器 属性 maximumDate 设置为现在 (NSDate()) :
sender.maximumDate = NSDate()
您的代码没有意义。您正在创建一个全新的日期选择器,然后从未将其安装在您的视图层次结构中。您正在创建的日期选择器从不执行任何操作。
相反,您应该在 Interface Builder 中创建一个日期选择器,然后按住 Control 从该日期选择器拖动到视图控制器 class 的顶部,就在大括号内。这将导致 IB 提议创建一个 IBOutlet。然后在您的 viewWillAppear 方法中,您将配置插座中的现有日期选择器以设置最大日期。
这一行也没有意义:
var isToday = NSDate
它甚至应该做什么?看起来变量将设置为 NSDate class.
名字也很迷惑。对于以 "is" 开头的变量名称,我希望它是一个布尔值,如果某个日期是今天则为真,否则为假。
我建议改用这个:
let today = NSDate()
该代码创建了一个 NSDate 类型的常量,并将当前日期和时间存储到其中。 (编译器可以推断 today
是一个 NSDate,因为那是 NSDate()
初始化函数 returns。)