CPDatePicker - 在dateValue上打开,而不是今天的月份

时间:2015-07-11 10:24:33

标签: cappuccino objective-j

您能以编程方式触发CPDatePicker图形日历上的按钮吗?我将日期对象设置为正常,但日历最初显示的是当前月份,今天的日期显示为蓝色,而不是dateValue月份。单击月箭头步进按钮之间的小圆圈按钮可将显示切换为dateValue。我在代码而不是IB中这样做。我已经搜索了CP和NS文档,但我被卡住了!

1 个答案:

答案 0 :(得分:0)

CPDatePicker的实现使用控件_CPDatePickerCalendar以我认为您所询问的模式显示。此控件似乎将其视图设置为显示所选的日期:

- (void)setDateValue:(CPDate)aDateValue
{
    var dateValue = [aDateValue copy];
    [dateValue _dateWithTimeZone:[_datePicker timeZone]];

    [_monthView setMonthForDate:dateValue];
    [_headerView setMonthForDate:[_monthView monthDate]];

    [self setNeedsLayout];
    [self setNeedsDisplay:YES]; // <-- makes cappuccino redraw the calendar
}

在写入{dateValue属性时,从CPDatePicker调用此方法。所以我相信你想要完成的是默认行为。

在设置日期时,也许CPCalendar不会作为子视图添加到CPWindow,因此在设置值时视图没有更新?