在非活动的NSWindow中刷新NSTableView

时间:2010-07-29 04:54:37

标签: macos cocoa nstableview nswindow

我有一个带有主窗口的应用程序和一个带有tableview的浮动窗口。当我在主窗口中修改浮动窗口的输入(使浮动窗口处于非活动状态或不锁定状态)时,尽管在tableview上调用reloadData:,但tableview仍未显示新数据。

我还尝试使用以下内容刷新浮动窗口(因为它包含tableview)(没有成功):     [[window contentview] setNeedsDisplay:YES];

所以,问题基本上是如何在不是最前面窗口的窗口中刷新tableview,如果你愿意,则不活动。

谢谢!

2 个答案:

答案 0 :(得分:0)

没有代码我们只能猜测...... 我的猜测是你在主窗口中修改的数据不能与浮动窗口相同。 (例如,它可能是一个副本。) 只是一个猜测...

答案 1 :(得分:0)

我意识到这是一个老问题,但我看到了类似的行为,无法找到解决方案。这是为我解决的问题:

确保在主线程的浮动窗口中更新tableview。我正在更新我的NSOutlineView以响应通知,并且没有意识到通知是在后台线程上发布的。在我激活其包含窗口之前,大纲视图没有更新。

将代码移动到主线程后,它就开始正常工作了。