我目前正在尝试将html内容渲染到NSTableView中的自定义NSTableCellViews中。这是为了单独在电子邮件线程中呈现电子邮件。在选择时,NSTableCellView会展开以显示已呈现的电子邮件,或者合同以隐藏它。它似乎与以下组合工作正常:
和
每个NSTableCellView都有一个WebView作为其子级。渲染的内容显示正常,直到我开始大量滚动,在屏幕外WebViews丢失其渲染的内容。如果我通过签约和扩展NSTableCellView来强制重新渲染,那么内容就会很好。
是否有委托方法/解决方法?或者我应该使用除WebView之外的其他内容在NSTableCellView中呈现html吗?
答案 0 :(得分:0)
如果有人偶然发现未来,我使用的解决方案是将NSTableView.usesStaticContents设置为YES。这可以防止makeViewWithIdentifier回收单元格,从而允许WebView在不同的NSTableCellViews中持久化。
这显然会占用更多内存,但由于电子邮件线程中最大单元格数有明确限制,因此增加的范围在可接受的范围内。