【问题标题】:NSDatePicker failing to refresh when setting date to current date将日期设置为当前日期时,NSDatePicker 无法刷新
【发布时间】:2014-01-04 16:00:47
【问题描述】:

我有一个 NSDatePicker 和一个关联的 NSButton,当按下它时,它会将当前日期更改为“今天”。

但是:当当前日期是 2014 年 1 月 4 日时,我使用内置箭头按钮切换到不同的月份而不更改实际选择的日期,似乎没有办法让日历刷新。这是该问题的视频:

问题视频: https://www.dropbox.com/s/ay7fljnoyxb06ua/Calendar%20Test%20Video.mov

有关示例,请参阅随附的示例项目。重现:

  1. 点击“今天”
  2. 点击右箭头按钮切换到不同的月份(无需选择实际日期)
  3. 点击“今天”

如果您以编程方式选择当前查看月份中的日期,NSDatePicker 似乎无法刷新,并且如果它的日期正在切换 from 也是在不同的月份。

但是,日期正确选择的。如果您使用按钮选择日期,然后手动浏览回正确的月份,则日期已被选择。但日历不会自动显示您该月,除非您切换的日期是当前查看的月份。

示例项目: https://www.dropbox.com/s/tnpox2mt5f5z2nb/CalendarTest.zip

【问题讨论】:

  • 我注意到,当转到另一个月时,然后单击任何一天,然后单击 todaytomorrow,它会正确跳回。所以它似乎已经知道它是在今天还是明天,但是需要通知视图才能跳转回来。
  • @l'L'l 是的,完全正确。问题是没有办法通知视图跳回。
  • 可以让今天或明天按钮选择您首先查看的月份的第一天,以便它跳回,尽管这似乎是一件愚蠢的事情。

标签: macos cocoa nsdate nsdatepicker


【解决方案1】:

我会 file this as a bug 反对 API,因为类中没有方法建议您必须要求它手动刷新(我假设设置选定的日期会自动显示正确的范围以显示该选择)。

作为一种解决方法,您可以尝试要求它显示 (-setNeedsDisplay:YES) 或在设置日期后手动调整其最小/最大范围,然后立即将其设置回无限制。也许这会启动它以显示所选日期的正确范围。

【讨论】:

  • 已提交错误 - 我也尝试了 setNeedsDisplay:YES,但没有成功。今天下午我将摆弄最小/最大方法。
猜你喜欢
  • 2016-12-26
  • 2014-12-07
  • 2019-01-07
  • 2014-05-06
  • 2019-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-19
相关资源
最近更新 更多