当 NSWindow 调整大小时调整 Table 列

Resize Table Column when NSWindow resizes

我正在开发一个 Cocoa 应用程序,我在其中使用了 NSTableView。

现在我希望 table 视图中列的宽度在用户调整大小时或最大化 window 时自动调整大小,方法是从角落拖动应用程序,或单击缩放按钮。

任何帮助将不胜感激。

确保 table 视图本身在 window 调整大小时调整大小,方法是设置约束或设置其自动调整大小掩码。

然后设置 table 的整体列自动调整样式。在故事板或 XIB 中,您可以通过 selecting table 视图(而不是包含它的滚动视图)然后在属性检查器中设置“列大小调整”弹出窗口来完成此操作。在代码中,您设置 table 视图的 columnAutoresizingStyleNSTableViewColumnAutoresizingStyle 下描述了不同的样式。如果您希望所有列在调整大小时扩展或收缩,请将其设置为 NSTableViewUniformColumnAutoresizingStyle.

然后根据需要设置每列的自动调整大小行为。

如果您要在 XIB 或情节提要中设置 table,您可以 select 列,然后在属性检查器下设置其大小调整行为。

如果您在代码中创建列,请设置每个 NSTableColumnresizingMask 以包含您想要的任何调整大小模式位。默认设置允许用户调整大小和自动调整大小,因此您无需执行任何操作。

如果调整列大小调整掩码或 table 视图调整大小设置没有任何作用,请确保最后一列实际上触及 table 视图的右侧,即使它似乎是。