objective-c - 调整 NSView 的大小使其小于其 subview ?

标签 objective-c cocoa

在网上找不到任何关于此问题的信息,想知道 SO 上是否有人有解决方案。

我有一个 NSView,其中有几个 subview ,这些 subview 通过删除左右 anchor 而居中。当我以编程方式或使用鼠标将 View 大小调整为比 subview 更小的宽度时:它将它们推离中心。以前有人遇到过这个问题吗?你有解决方案吗?

编辑:我希望能够将 View 大小调整为零宽度。原因是,该 View 实际上是分割 View 的一部分,我连接了一个按钮来“折叠”它。当它折叠时,所有 subview 都会被推离中心,并且在调整 View 大小时不会重新居中,从而有效地取消折叠它。

最佳答案

我现在已经解决了我的问题,并且想分享一下,以防将来有人遇到这个问题。

在 Interface Builder 中使用自动调整大小选项或 View 布局似乎无法阻止我的 subview 偏离中心。我确实找到了这个链接here在此页面中,建议:

Springs and struts, as currently implemented, are really no good for anything but keeping either one or both sides of a view "stuck" to the nearest edge. Any sort of centering behavior, division of gained/lost area between multiple views, etc. has to be done by hand.

基于此,我覆盖了 View 的 setFrame: 方法,并使用其 setFrame: 方法手动布局我的 subview 。这非常有效,给了我想要的结果。

关于objective-c - 调整 NSView 的大小使其小于其 subview ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3484963/

相关文章:

iOS Setters 和 Getters 以及带下划线的属性名称

swift - 在 Swift 2.1 中将多个选项传递给 NSLineBreakMode

ios - NSArray 中不区分大小写 containsObject :

objective-c - Mac os x 以编程方式获取域名

ios - 动态加载的 Swift 框架包的principalClass 为 NIL

objective-c - 从内部 block 中调用 block

swift - cocoa Xcode : Open Window Controller from AppDelegate Programmatically using Swift 4 for Mac?

objective-c - 用于音频处理/声音文件分割的 Mac 库

objective-c - NSImage initWithContentsOfFile : display progress

ios - 允许 Facebook 个人资料权限