【问题标题】:NSTableView with embedded WebViews带有嵌入式 WebView 的 NSTableView
【发布时间】:2016-02-29 22:12:59
【问题描述】:

我目前正在尝试将 html 内容呈现到 NSTableView 内的自定义 NSTableCellViews 中。这是在电子邮件线程中单独呈现电子邮件。在选择时,NSTableCellView 要么展开以显示呈现的电子邮件,要么收缩以隐藏它。结合以下各项似乎可以正常工作:

  • tableView:viewForTableColumn:row:
  • tableView:heightOfRow:
  • tableViewSelectionDidChange:

和:

  • noteHeightOfRowsWithIndexesChanged:
  • reloadDataForRowIndexes:columnIndexes:

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

有没有委托方法/方法来解决这个问题?或者我应该使用 WebViews 以外的东西在 NSTableCellView 中呈现 html?

【问题讨论】:

    标签: objective-c xcode macos nstableview xcode-storyboard


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢,这拯救了我的一天!
    猜你喜欢
    • 1970-01-01
    • 2012-09-01
    • 1970-01-01
    • 2022-07-28
    • 2017-07-28
    • 1970-01-01
    • 2013-01-23
    • 2012-04-13
    • 1970-01-01
    相关资源
    最近更新 更多