调整小于其子视图的NSView的大小?

时间:2010-08-14 20:23:20

标签: objective-c cocoa

无法在网上找到任何关于此的内容,并想知道SO上是否有人有解决方案。

我有一个带有几个子视图的NSView,它们通过删除左右锚点来居中。当我以编程方式或使用鼠标调整视图大小时,其宽度小于子视图:它将它们推离中心。有没有人遇到过这个问题,你有解决方案吗?

编辑:我希望能够将视图调整为零宽度。原因是,视图实际上是拆分视图的一部分,我已经连接了一个按钮来“折叠”它。当它折叠时,所有子视图都被偏离中心,并且在调整视图大小时不会重新居中,有效地将其折叠。

2 个答案:

答案 0 :(得分:1)

我现在已经解决了我的问题,并且认为我会分享任何人在将来遇到这个问题。

在Interface Builder中玩自动调整选项或视图布局的数量似乎无法阻止我的子视图偏离中心。我确实找到了这个链接here,并从这个页面中找到了建议:

  

弹簧和支柱,目前   实施,真的没有用   什么,但保持一个或   双方的观点“卡住”了   最近的边缘。任何中心   行为,获得/失去的区域划分   必须在多个视图之间进行   手工完成。

基于此,我覆盖了我的视图的setFrame:方法,并使用他们的setFrame:方法手动布局了我的子视图。这很有效,并且给了我正在寻找的结果。

答案 1 :(得分:0)

使用NSSplitView存在同样的问题,在这里调整一个Subview小于Subview子视图是有意义的,例如。在上部子视图中有小图表,在下部子视图中有一个rss阅读器。

如果要在下部子视图中仅显示rss阅读器,则可以“隐藏”上部子视图,但在调整上部子视图的大小后,NSImageView的布局与开头时不同。请检查此笔尖/ xCode Project和以下screenshot以查看此行为。

只有workaroung才能覆盖调整大小功能以停止变小。