我正在用GUI编写一个简单的Cocoa应用程序,该应用程序仅包含一个简单的表,该表的数据有时会更新。但是,当实际更新数据时,大多数情况下表的行会完全消失。但是,一旦我改变焦点(如果我的应用程序是主窗口,请单击桌面,否则,请单击应用程序的窗口),一切都会正确显示
数据在单独的单例类中处理,该类运行一个线程,该线程实际上负责数据源并在数据更改时发布NSNotification。窗口控制器接收到该通知,提取新数据并触发[tableView reloadData]
-这是问题开始的地方
窗口控制器是表的数据源和委托,并实现numberOfRowsInTableView
方法和viewForTableColumn
方法。发生问题时,将调用numberOfRowsInTableView
并返回非零值,但根本不会调用viewForTableColumn
我希望无论何时调用[tableView reloadData]
以及我关注的焦点都可以正确地重绘表格,但实际上,一切都消失了,只有在改变焦点后才能正确地重绘
答案 0 :(得分:0)
解决了。问题是从后台线程更新GUI