【问题标题】:Expansion for a view-based NSTableView基于视图的 NSTableView 的扩展
【发布时间】:2013-07-25 23:52:54
【问题描述】:

我有一个基于视图的 NSTableView,其中一些单元格有足够的内容,它不适合。当用户将光标悬停在单元格上时,我希望能够让单元格自动展开。

在搜索这个时,这似乎是基于单元格的 NSTableView 的默认行为。甚至还有像 shouldShowCellExpansionForTableColumn 这样的方法,文档中说这些方法仅适用于基于单元格的表格视图。文档中的其他地方暗示即使基于单元格的表格视图默认启用此扩展行为?

- (BOOL)tableView:(NSTableView *)tableView shouldShowCellExpansionForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row

我觉得我遗漏了一些明显的东西。

目标:

  • 能够在一个基于视图的单元格中放置多行 NSTextField 对象(超过了处理速度)
  • 如果内容溢出,在单元格中放置一个视觉指示器
  • 当用户将工具提示样式悬停在单元格上时,展开视图以显示所有内容

【问题讨论】:

  • 该方法基本上显示了一个工具提示。您要查找的内容并不容易,但涉及行高调整和行视图高度以及单元格视图高度。在 10.9 上,您可以查看 NSStackView 但无论您正在查看管理单元格和行视图子类中的一些自动布局约束并响应通知。 (可能创建自己的)

标签: objective-c nstableview


【解决方案1】:

您是否尝试更改由某些鼠标操作触发的行高 (tableView:heightOfRow:)?您可能需要重新加载 tableview。

【讨论】:

    【解决方案2】:

    您似乎走在正确的轨道上,因为这应该适用于基于单元的 NSTableView。您需要将 tableView:shouldShowCellExpansionForTableColumn:row: 放在 tableView 的委托中。您可以对感兴趣的列回复“是”。

    在基于视图的表格中,您使用 NSTextFields 这些滚动、截断或换行,但没有悬停扩展选项。可以将工具提示文本设置为与内容相同,这可能是一个合理的解决方案。

    【讨论】:

    • 没有。问题是我在基于视图的单元格中有一个或多个 NSTextField 对象。当我需要许多 NSTextField 对象时,我需要能够让用户单击某些内容或将鼠标悬停在基于视图的单元格上以使其增长。工具提示或滚动解决方案不能解决问题。问题是有一个用户根本看不到的 NSTextField。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多