从另一个线程更新NSCollectionView会使其空白

时间:2011-12-21 15:52:30

标签: objective-c xcode macos cocoa nscollectionview

我的Mac应用程序中有一个NSCollectionView,它包含一些图标。同时,我使用NSOperationQueue作为任务调度程序来排队一些操作。在一个NSOperation中,我修改了NSCollectionView的内容,当内容发生变化时,视图应该立即更新。

如果我在主线程中更新它,那么它的效果非常好。如果我在NSOperation :: main()的末尾放置相同的源代码,那么NSCollectionView将完全为空。

这是某种错误还是以错误的方式进行?

谢谢!

1 个答案:

答案 0 :(得分:2)

必须在主线程上执行与UI元素的所有交互。

您可以使用performSelectorOnMainThread:withObject:waitUntilDone:方法来帮助您从后台线程更新UI元素。