objective-c – 如何强制更新Cocoa绑定?

objective-c – 如何强制更新Cocoa绑定?,第1张

概述我正在使用 Cocoa绑定(如在Mac上的Objective-C中)使用值转换器显示相对日期值.也就是说,我的NSValueTransformer子类将NSDate实例转换为NSString以显示相对日期,如“3秒前”,“2分钟前”等. 如您所见,这些显示的值随着时间的推移而过时,因此需要以某种方式刷新.我知道我需要使用计时器,然后强制更新绑定,以便重新执行值转换器并显示正确的相对日期. 但问题是 我正在使用 Cocoa绑定(如在Mac上的Objective-C中)使用值转换器显示相对日期值.也就是说,我的NSValuetransformer子类将NSDate实例转换为Nsstring以显示相对日期,如“3秒前”,“2分钟前”等.

如您所见,这些显示的值随着时间的推移而过时,因此需要以某种方式刷新.我知道我需要使用计时器,然后强制更新绑定,以便重新执行值转换器并显示正确的相对日期.

但问题是,如何使这些绑定刷新其值?

解决方法 如果您正在使用绑定,那么GUI应该只要您更新:

>正在更新主线程上的值(因此绑定可以在GUI时更新)
>正在使用setter更新值

所以,如果你有一个绑定到对象的foo.zot属性的值,你需要确保在主线程上调用[foo setZot:@“new value”](或者使用foo设置属性). zot = @“新值”).

总结

以上是内存溢出为你收集整理的objective-c – 如何强制更新Cocoa绑定?全部内容,希望文章能够帮你解决objective-c – 如何强制更新Cocoa绑定?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1002101.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存