Macos NSTableView使用autolayout在单元视图上创建宽度约束

Macos NSTableView使用autolayout在单元视图上创建宽度约束,macos,autolayout,nstableview,appkit,Macos,Autolayout,Nstableview,Appkit,我使用的是启用自动布局的基于视图的NSTableView。“自动布局”为单元视图提供了两个水平约束:一个是绑定到其NSTableRowView前缘的单元最小值,另一个是基于表格宽度调整的单元宽度约束 但是,当窗口的宽度调整为>1000点时,单元格宽度约束在1000点处停止增加,宽度约束在1000点处锁定,直到窗口的宽度小于此限制。这似乎是表视图插入的任意值,我不知道如何确保该值始终为表的宽度。我在IB中构建了表视图,它不允许在表的单元格视图上创建约束。我创建了一个示例来演示这个问题。这是Xco

我使用的是启用自动布局的基于视图的NSTableView。“自动布局”为单元视图提供了两个水平约束:一个是绑定到其NSTableRowView前缘的单元最小值,另一个是基于表格宽度调整的单元宽度约束

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


这不是任意的。Interface builder将最大表列大小设置为1000。如果删除所有列,将其设置为零,然后添加单个列,并确保将其设置为基于视图的表视图,那么它将将其设置为允许的最大大小(一个非常大的数字)。或者,您也可以在interface builder中自行设置最大大小


谢谢@TimTwoToes!我对这种愚蠢的疏忽感到羞耻,但我感谢你纠正我的错误。没问题@smr。AppKit中有很多角落和缝隙。阅读文档时,它会将新列的最大宽度设置为CGFloat.max,但显然Interface Builder不同意,默认列宽设置为1000。也让我大吃一惊。这就是本论坛的宗旨。不要犹豫:)如果您想要一列跟踪表的宽度,似乎必须在interface builder中将宽度设置为表的确切宽度,否则该列将不会跟踪表的大小(我尝试将列宽设置为较大的大小,以及最大值)。