gpt4 book ai didi

cocoa - 如何将 NSProgressIndicator 绑定(bind)到 NSOperation 的属性?

转载 作者:行者123 更新时间:2023-12-03 16:13:22 33 4
gpt4 key购买 nike

我有一个反射(reflect) NSOperation 状态的窗口。我应该如何将 NSProgressIndicator 绑定(bind)到 NSOperation 的进度属性?

最佳答案

AppKit 不是线程安全的。对 UI 对象的任何更新必须发生在主线程上。 KVO 不会跨线程调度观察消息。因此,您需要另一种更新进度指示器的方法,而不仅仅是简单的 KVO。

NSOperationmain 方法中,您需要定期发送进度消息。最简单的方法是将 NSNotificationCenter 与自定义通知一起使用,以便主线程可以监听更新。 (请注意,通知始终在发送通知的线程上传递,因此您需要使用 performSelectorOnMainThread: 方法来确保通知在 UI 线程上传递。)

在主线程中,您需要将类添加为观察者以接收这些通知并更新进度指示器。如果您想使用进度指示器的绑定(bind),您可以将其绑定(bind)到 Controller 对象上的一个属性,当您从 NSOperation 收到进度通知时,您会更新该属性。

关于cocoa - 如何将 NSProgressIndicator 绑定(bind)到 NSOperation 的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1395081/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com