具有嵌入式WebViews的NSTableView



我目前正在尝试将html内容呈现到NSTableView内的自定义NSTableCellViews中。这是为了单独呈现电子邮件线程中的电子邮件。在选择时,NSTableCellView要么展开以显示呈现的电子邮件,要么收缩以隐藏它

  • tableView:viewForTableColumn:行:
  • tableView:行的高度:
  • tableViewSelectionDidChange:

和:

  • note更改了索引的行的高度:
  • reloadDataForRowIndexes:列索引:

每个NSTableCellView都有一个WebView作为其子级。渲染的内容显示得很好,直到我开始大量滚动,这时屏幕外的WebView就会丢失渲染的内容。如果我通过收缩和扩展NSTableCellView来强制重新渲染,则内容看起来很好。

是否有委托方法/方法来解决此问题?或者,我应该使用WebViews以外的东西来在NSTableCellView中呈现html吗?

如果将来有人在这里遇到麻烦,我使用的解决方案是将NSTableView.usesStaticContents设置为YES。这防止makeViewWithIdentifier回收单元格,从而允许WebView在不同的NSTableCellViews中持久存在。

这显然会占用更多的内存,但由于电子邮件线程中的最大单元格数量有一定的限制,因此增加的数量在可接受的范围内。

相关内容

  • 没有找到相关文章

最新更新