【问题标题】:View based NSTableView with each view contains 3 labels with should resize based on Text基于视图的 NSTableView,每个视图包含 3 个标签,应根据文本调整大小
【发布时间】:2013-06-23 18:42:07
【问题描述】:

我需要在 Popover 中创建一个基于视图的 tableview,如下所示:

  • Tableview 应放置在 Popover 中(Popover 高度应与 tableview 相同)。
  • 每一行都应包含一个视图。
  • 每个行视图将包含 3 个标签。
  • 标签应根据其文本高度自动调整大小。
  • 基于 3 个标签高度,单元格行高应调整大小。
  • 根据所有单元格行,tableview 高度应调整大小。
  • 根据 tableview 高度,Popover 应该调整大小。

我以静态格式完成了此操作,但我需要以更动态的格式执行此操作(将来我应该能够使用相同的类和方法添加更多行)。

我面临的主要问题是,我无法计算tableView:heigthOfRow: 中单元格视图的大小,因为此时我不知道标签的文本。 所以我只是在 loadView 本身中创建了 tableview 单元格并保存在数组中,并在 tableview 委托方法中从数组中获取。但我认为这是错误的做法。

注意:tableview 的所有数据将在加载视图本身时给出。标签不可编辑。

【问题讨论】:

  • 这被标记为 iOS 和 Cocoa。这个问题谈到了NSTableView(Cocoa),然后谈到了“popovers”(UIPopoverController? - iOS)。您真正指的是哪个平台?
  • 我说的是可可。在 Cocoa 中,我们可以使用 NSPopover 来弹出窗口
  • 好的,请相应地更新标签。

标签: cocoa nstableview nspopover


【解决方案1】:

Cocoa 系统根据 superview 调整子视图的大小,我认为您正在寻找的场景是根据子视图大小调整超级视图的大小。 以下 2 个解决方案我可以立即提出建议,

1.您可以选择在每个子视图的大小变化时发布通知,并让超级视图立即观察。

2.在案例 3 标签中使用全局变量来确定每个子视图的大小,并在基于视图的表视图中使用 API 来计算 finalRect。

希望这会有所帮助:) 祝你有美好的一天。

【讨论】:

猜你喜欢
  • 2015-03-10
  • 1970-01-01
  • 1970-01-01
  • 2022-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多