调整大小或滚动后,NSTableCellView中的控件将自动移动到右侧

时间:2016-12-12 09:04:57

标签: cocoa nsoutlineview

我正在尝试实现一个在NSTableCellView中显示项目计数的计数器视图。 奇怪的是,在调整窗口大小或滚动具有NSTableCellView的NSOutlineView后,它会自动向右移动。 这是它的一些截图。您将能够看到计数器视图,其中显示在调整窗口大小后向右移动“42”。

The weird behavior 以下是计数器视图的初始状态。 Init State 以下是调整窗口大小后的状态。 After Resize 以下是初始位置和调整大小窗口后的位置之间的差异。 The Difference Cell Autoresize Property Cell Autoresize Property Count Button Autoresize Property 计数按钮自动调整属性

enter image description here enter image description here

我猜这与scrollview有关但我无法找到更多有关此问题的线索。顺便说一句,Mac上的官方邮件应用程序与此相同但不同之处在于邮件应用程序的计数器在启动后立即被更改,因此在调整大小窗口后它不会被移动。

有人知道吗?任何想法都将不胜感激。

这是一个链接,允许您下载苹果提供的示例项目,您可以重现我面临的问题。 Sidebar Demo App that providing by Apple.

您只需在从Project运行它之前更改部署目标 - >目标 - >部署信息部分。

1 个答案:

答案 0 :(得分:0)

如果我正确地解释了自动调整屏幕截图,那么' 42'控制符合指定的行为。你已经固定了' 42'的右侧。与细胞右侧相反。这就是它停留的地方,粘在电池的右侧。

将单元格固定在桌面视图的左侧,这是它停留的位置,粘在桌面视图的左侧。你还没有将单元的右侧固定在任何东西上,因此当你调整大小时,右侧会移动它所需要的位置,只保持指定的单元格宽度。如果要将单元格的右侧粘贴到tableView或列的宽度(不确定它是哪个),请将其固定。请指定单元格的最小宽度。如果您未指定最大宽度或固定宽度,则单元格将通过调整大小来拉伸和缩小。如果您固定宽度,则只会拉伸右视图或列。