objective-c - Cocoa 绑定(bind)值直到进程结束才更新

标签 objective-c cocoa cocoa-bindings nstextfield

我有一个NSTextField其值绑定(bind)到 controller.status 的标签

当我调用函数时[controller someFunction]将状态更新为 [self setStatus:@"Something"];在该过程完成之前,UI 不会反射(reflect)更改。状态已成功更改,但我使用文本字段作为用户的状态,因此其值在函数结束之前将更改多次。

为什么 UI 不随着状态值的每次更改而更新?它仅在流程结束时显示当时的状态。

最佳答案

Why does the UI not update with each change of the status value?

因为显示仅作为运行循环的一部分进行更新。 Here's a very similar question刚才问过。

如果您有一个冗长的进程,您应该将其移至操作或后台线程,这样就不会阻塞主线程。阻塞主线程会导致您的应用程序看起来没有响应。

关于objective-c - Cocoa 绑定(bind)值直到进程结束才更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6337195/

相关文章:

macos - 如何使调整光标大小显示在 float 的非激活面板上?

cocoa - 绑定(bind) NSMenuItem 的标题会破坏启用/禁用验证

objective-c - 将一对多核心数据关系的前 5 个值绑定(bind)到文本字段

objective-c - 如何检查文件是否存在于特定的 URL?

ios - 将 UIImage 添加到数组时出现无法识别的选择器错误

iphone - Soundtouch bpm iPhone

swift - 如何在文档子类中使用带有键的 cocoa 绑定(bind)?

objective-c - 动画有问题

objective-c - 如何在 NSString 中找到最后一次出现的子字符串?

ios - ARC 不允许将非 Objective-C 指针类型 void* 隐式转换为 NSString*__strong*