我的应用程序使用默认系统存储上次数据更新的日期和时间。
我的窗口有一个绑定到该值的文本框。此文本框还附加了一个日期格式化程序。全部通过界面生成器完成。日期格式设置为使用相对日期。
数据仅在白天更新,每次有新数据到达时,文本字段都会完美更新。所以我得到类似的东西:
今天 09:30 今天 09:35 今天 09:40 … 今天 17:40
17:40 将是当天的最后一次数据更新。
问题是,一旦到了午夜,它仍然会显示 Today, 17:40,而应该显示 Yesterday, 17:40。
如果我退出并重新打开应用程序,它会显示昨天,17:40。
我想我需要告诉一些东西来刷新,但我不确定是什么,我找不到一个例子。
1) 显然你可以发送假的 willChangeValueForKey 和 didChangeValueForKey 通知,但很多人说这是不正确的。
2)我尝试在午夜后将用户默认值设置为自身,但这并没有触发更改。
3)我尝试将用户默认值设置为 nil 然后在午夜后返回,但这也不起作用。
我确信有一种正确而简单的方法可以做到这一点,但我找不到它。
我需要触发什么?我需要触发哪个对象?
非常感谢。