NSWindow缩小以填充内容

时间:2018-11-16 17:37:45

标签: swift cocoa

我是可可开发的新手,并想知道对以下事物采用正确的方法是什么:

我有一个带有控件的窗口,该控件的大小是动态的。换句话说,我事先不知道窗口的宽度。我也想给窗口填充15px。在CSS世界中,我只需要填充div并使其内联即可完成此操作。我似乎无法弄清楚如何使用NSWindow / NSView。

1 个答案:

答案 0 :(得分:0)

问题太模糊了,无法确定,但是IFF我正在理解您,您希望窗口的子视图将自身调整为始终从封闭窗口的左右两侧为15像素。

这是两个约束(如在Interface Builder中设置的一样,但是您可以通过代码执行相同的操作):

Leading space to superview enter image description here

这是一个视图,其宽度设置为可调整,同时将与窗口框架的左右填充保持在15像素(实际上是点数,但不必担心)。

随着视图层次结构变得越来越复杂,您将对布局的不同部分使用不同的技术。这就是为什么马特(Matt)提出您不够具体,无法真正回答问题的原因。 (您要执行的操作的哪个特定部分不起作用,而您尝试执行的哪些操作不起作用?)。我已经向您展示了上面最简单的外层的第一步,它反映了贯穿您的视图层次结构的原理,但是还有其他情况-两个项目具有相同的宽度,三个项目之间具有相同的水平间距,等等-需要不同的技术。

从头至尾阅读自动布局文档对您很有帮助。它讨论了不同类型的关系(下面是我所使用的相等)以及一些技巧。不幸的是,目前Apple的文档状况有点混乱,这使这件事比应有的困难(叹息)。

曾经是权威性auto layout guide的东西是“未维护的”,文档似乎在前进的地方是不完整的,而且访问起来肯定很困难。对于这种情况,最有用的部分是NSLayoutContraint文档,尽管该文档链接到上面提到的“未维护”的文档(叹气)。