objective-c - 调整大小和布局 : How to implement this design?

标签 objective-c xcode cocoa nsview nstextfield

好吧,这看起来很简单,但我已经苦苦挣扎太久了,所以我决定寻求一些帮助。

基本,我有一个容器 NSView。

内容为(从左到右):

  • 一个NSSegmentedControl
  • 一个 NSTextField
  • 一个NSSegmentedControl

它们都是水平对齐的(=它们在同一条“线”中)。

我想做的是:

  • 第一个元素的宽度固定,并固定在左侧
  • 可调整大小的文本字段
  • 最后一个元素的宽度固定,并固定在右侧

我想这是不言自明的。

<小时/>

这是我的 3 个 View 的自动调整大小设置:

查看 1

enter image description here

查看 2

View 2

查看3

enter image description here

<小时/>

问题是:整个大小调整工作正常。直到文本字段的大小调整到折叠的程度。当 super View /容器再次调整为正常大小时,整个设计就会变得困惑(文本字段溢出容器以及许多此类奇怪的问题)。

发生什么事了?有什么建议吗?

<小时/>

注意:我让它与自动布局一起使用(仅设置“自动布局”和“添加(ing)缺少约束”),但我绝对想避免它,因为性能影响巨大——整体设计相当复杂,有很多嵌套,所以让我们坚持使用老式的方式。 :-)

最佳答案

使用自动调整大小蒙版的旧 Spring 和支柱模型基于大小变化的比例分布,该变化基于正在调整大小的 subview 的当前大小。一旦任何 subview 的大小为零,它就会变得困惑。要么除以零,要么乘以零,你就会得到虚假的结果。这是系统长期存在的问题。

您必须设置最小窗口大小以防止这种情况发生。

自动布局解决了旧模型的这一问题和许多其他限制,以及它的所有缺陷。

关于objective-c - 调整大小和布局 : How to implement this design?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27457069/

相关文章:

objective-c - 对实现比较的对象的 NSFetchRequest 结果进行排序 :

ios - 录制带有叠加文本和图像的视频

objective-c - 编辑在 IOS 应用程序中管理的预填充 sqlite 数据库核心数据

objective-c - 如何获取 cocoa 中字体的大小

macos - 拉伸(stretch) NSImage 以制作类似 iMessage 的气泡

objective-c - 不同的 C 数组声明

ios - 为注释创建自定义标注

Xcode beta 7 - Do-While 循环 SWIFT 错误

ios - 归档后无法导出开发的iOS应用程序

python - 在命令行和 GUI 程序之间共享首选项