gpt4 book ai didi

macos - NSTableView 对齐调整大小的列

转载 作者:行者123 更新时间:2023-12-05 00:56:46 26 4
gpt4 key购买 nike

我需要创建一个包含 3 列的 NSTableView,这些列必须适合像这样的空间 20% 60% 20%。我在界面生成器中设置了约束但没有成功。结果总是一样的。显示了 3 列,但大小与 IB 中的相同,如果我调整窗口大小,表格也会调整大小,但列保持原始大小。我如何根据表格 View 大小按比例调整列的大小?我怎样才能使一列始终向右对齐?请需要帮助。我的项目是针对 OS X,而不是 iPhone。提前致谢。

最佳答案

我不确定您尝试设置什么约束,但表列不是 View ,因此它们不参与自动布局。

您想要实现的目标没有自动支持。 NSTableView 可以设置为在其列之间平均分配宽度变化(将 columnAutoresizingStyle 设置为 NSTableViewUniformColumnAutoresizingStyle),但这不会保持比例随心所欲。

我认为您希望设置 TableView ,使其不调整其列的大小。然后您将监视它的框架是否有任何变化并自行调整列宽。

您可以在IB中设置table view的column autoresizing样式。

要监视框架,您可以使用 NSTableView 的子类并覆盖 -setFrameSize: 或者您可以让一些 Controller 观察 NSViewFrameDidChangeNotification 来自 TableView 的通知。无论哪种方式,您都需要计算宽度的 20% 和 60%。您可能希望舍入或截断为整数。此外,您应该只对三列中的两列使用百分比。对于第三个,从 TableView 的宽度中减去您为前两个计算的宽度。这是确保它们全部相加的最简单方法。

对于每一列,检查您计算的宽度是否与其当前宽度不同,如果不同,则设置其宽度。

关于macos - NSTableView 对齐调整大小的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26104869/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com