【问题标题】:NSTableView using autolayout creates width constraint on cell viewNSTableView 使用自动布局在单元格视图上创建宽度约束
【发布时间】:2019-03-01 20:57:58
【问题描述】:

我正在使用基于视图的 NSTableView 并启用了自动布局。 Auto Layout 为单元格视图提供了两个水平约束:一个绑定到其 NSTableRowView 前沿的 Cell_MinX,以及一个基于表格宽度调整的 Cell_Width 约束。

但是,当窗口的宽度调整大小 > 1000 点时,Cell_Width 约束在 1000 处停止增加,并且宽度约束锁定在 1000 点,直到窗口的宽度小于此限制。这似乎是表格视图插入的任意值,我无法弄清楚如何确保该值 always 是表格的宽度。我在 IB 中构建了表格视图,它不允许在表格的单元格视图上创建约束。我创建了一个sample project 来演示这个问题。这是 Xcode 的视图调试器,窗口宽度大于 1000。

【问题讨论】:

    标签: macos autolayout nstableview appkit


    【解决方案1】:

    这不是任意的。界面生成器将最大表列大小设置为 1000。如果删除所有列,将其设置为零,然后添加单个列,并确保将其设置为基于视图的表视图,然后将其设置为允许的最大值大小(一个非常大的数字)。或者您可以在界面生成器中自己设置最大尺寸。

    【讨论】:

    • 感谢@TimTwoToes!我为这种愚蠢的疏忽感到羞愧,但我感谢你让我直截了当。
    • 没问题@smr。 AppKit 中有很多角落和缝隙。阅读它说的文档,它将新列的最大宽度设置为 CGFloat.max,但显然 Interface Builder 不同意,默认列宽设置为 1000。也让我感到惊讶。这就是这个论坛的目的。不要退缩:)
    • 如果你想要一个单独的列来跟踪表格的宽度,看来你必须在界面生成器中将宽度设置为表格的确切宽度,否则该列将不会跟踪表格大小(我尝试将列宽设置为大尺寸,以及最大值)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-22
    • 1970-01-01
    • 2015-02-05
    • 1970-01-01
    • 1970-01-01
    • 2014-02-06
    • 1970-01-01
    相关资源
    最近更新 更多