首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >空的NSDatePicker

空的NSDatePicker
EN

Stack Overflow用户
提问于 2011-03-30 22:10:45
回答 3查看 1.7K关注 0票数 3

嗨,有没有可能有一个表示空对象的NSDatePicker?类似于-/-/-或任何其他方式。

谢谢你,拉度

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-17 08:43:14

简短的回答是:不

NSDatePicker简单地忽略无效的日期和nil。

例如,这不会更新NSDatePicker,而是保留旧值:

代码语言:javascript
运行
复制
[datePicker setDateValue:nil];

唯一的解决方案:检测nil并做一些具体的事情:

代码语言:javascript
运行
复制
if(date == nil) {

    // Set Specific Date
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:@"yyyyMMdd"];
    NSDate *nilDate = [dateFormat dateFromString:@"20000101"];  
    [datePicker setDateValue:nilDate];

    // Or Disable
    [datePicker setEnabled:FALSE];

} else {

    // Update Date
    [datePicker setDateValue:date];

}
票数 5
EN

Stack Overflow用户

发布于 2014-05-19 19:44:52

下面的NSDatePicker子类可以显示空的日期状态,并表示nil绑定。

https://github.com/ThesaurusSoftware/TFDatePicker

运行TFDatePickerTest以查看其行为。

票数 1
EN

Stack Overflow用户

发布于 2016-11-08 23:53:33

您可以通过将NSDatePickerElementFlags设置为0来强制NSDatePicker不显示日期:

代码语言:javascript
运行
复制
@IBOutlet weak var datePicker: NSDatePicker!
datePicker.datePickerElements = NSDatePickerElementFlags(rawValue: 0)

但是,您必须处理在选择datePicker时显示日期的问题。下面是一个执行此操作的子类,当选择一个空的datePicker时显示当前日期:

代码语言:javascript
运行
复制
class MyDatePicker: NSDatePicker {

    var date: Date? {
        didSet {
            if let date = date {
                self.dateValue = date
                self.datePickerElements = .yearMonthDayDatePickerElementFlag
            } else {
                self.datePickerElements = NSDatePickerElementFlags(rawValue: 0)
            }
        }
    }

    override func becomeFirstResponder() -> Bool {
        if date == nil {
            date = Date()
        }
        return true
    }

    override func resignFirstResponder() -> Bool {
        editing = false
        date = self.dateValue
        return super.resignFirstResponder()
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5487479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档