【问题标题】:NSTableView align resize columnsNSTableView 对齐调整列大小
【发布时间】:2014-09-30 02:31:11
【问题描述】:

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

【问题讨论】:

    标签: macos resize alignment nstableview multiple-columns


    【解决方案1】:

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

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

    我认为您想设置表格视图,以便它不会调整其列的大小。然后你会监控它的框架是否有任何变化,并自己调整列宽。

    您可以在IB中设置表格视图的列自动调整大小。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-28
      • 1970-01-01
      • 2017-01-29
      相关资源
      最近更新 更多