Cocoa 如何使其立即反映我在UI(文本字段)中设置为IBOulet的值?
假设我有十行代码 1Cocoa 如何使其立即反映我在UI(文本字段)中设置为IBOulet的值?,cocoa,Cocoa,假设我有十行代码 1 2 [地址街道设置字符串值:街道] 4 5 6 7 8 9 十, 其中addressStreet是指向UI和中文本字段的IBOutlet street是一个NSString对象 只有在所有的10行被执行之后,我才能在UI中看到更新的值。我的要求是,在执行第3行之后,甚至在执行下一行(第4行)之前,该值应该立即反映在UI中 也尝试过绑定!没有 有什么办法可以做到这一点吗 先走一步 一般来说,如果您有一些长时间运行的计算阻塞了您的UI,那么最好将其分块或在第二个线程上运行。只要
2
[地址街道设置字符串值:街道]
4
5
6
7
8
9
十, 其中addressStreet是指向UI和中文本字段的IBOutlet street是一个NSString对象 只有在所有的10行被执行之后,我才能在UI中看到更新的值。我的要求是,在执行第3行之后,甚至在执行下一行(第4行)之前,该值应该立即反映在UI中 也尝试过绑定!没有 有什么办法可以做到这一点吗
先走一步 一般来说,如果您有一些长时间运行的计算阻塞了您的UI,那么最好将其分块或在第二个线程上运行。只要这个方法阻塞了主线程,用户无论如何都无法与任何东西进行交互
但是,您的问题的直接答案是,您需要告诉字段重新绘制自己。通常,它会在下一个事件循环中执行此操作,但由于该方法阻止了此操作,因此它不会发生。您可以通过调用
[view display]
告诉视图重新绘制,当您返回到UI循环时,该字段将重新绘制。你的问题是你花的时间太长了。所以,不要花那么长时间
有很多方法可以做到这一点:
简单地告诉字段立即绘制并不是解决方案。是的,它会立即绘制,但您的UI仍然被阻止。在您从方法返回之前,您的用户无法执行任何操作,唯一的解决方案是更快地返回。一旦你这样做了,告诉字段立即绘制就没有必要了。Thnx用于回复。让我试试,然后再给你回复。谢谢你的回复。让我试试,然后再打给你。