【发布时间】:2019-04-11 16:54:23
【问题描述】:
我正在编写一个带有 GUI 的简单 Cocoa 应用程序,它只包含一个简单的表,其数据有时可能会更新。但是当数据实际更新时,大多数情况下表的行会完全消失。但是一旦我改变焦点(如果我的应用程序是主窗口,请单击桌面,如果不是,请单击应用程序的窗口),一切都会正确显示
数据在一个单独的单例类中处理,该类运行一个线程,该线程实际负责数据源并在数据更改时发布 NSNotification。窗口控制器接收到该通知,提取新数据并触发 [tableView reloadData] - 这就是问题开始的地方
窗口控制器是表的数据源和委托,实现numberOfRowsInTableView方法和viewForTableColumn方法。当问题发生时,numberOfRowsInTableView 被调用并返回非零值,但viewForTableColumn 根本没有被调用
我希望无论何时调用[tableView reloadData] 以及我的焦点在哪里,表格都会正确重绘,但在练习中,只有在我改变焦点后,所有内容才会消失并正确重绘
【问题讨论】:
-
请查看Can I answer my own question? 并在两天后返回,如果您的声望超过 15,请检查是否已回答。
标签: objective-c cocoa nstableview appkit reloaddata