如何在 Interface Builder 中禁用 NSSplitView 子视图的大小调整?
我在 Interface Builder 中创建了一个带有两个子视图的 NSSplitView。我希望左侧视图具有固定宽度。我尝试为两个子视图定义自动调整大小规则,但左侧子视图仍然会在窗口调整大小时更改宽度(拆分视图填满一个窗口)。可能是由 NSSplitView 的 Autoresizes Subviews 属性引起的? (我无法取消选中它)。我能做些什么?
I've created in Interface Builder a NSSplitView with two subviews. I want the left-side view to have fixed width. I've tried to define autosizing rules for both subviews but the left subview still changes width on window resizing (split view fills up a window). May be that caused by NSSplitView's Autoresizes Subviews property? (I can't uncheck it). What can I do?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我发现在 Interface Builder 中执行此操作的最佳方法:
当然,如果您喜欢冒险,您也可以通过上面建议的代码添加此布局约束。
The best way I found to do this in Interface Builder:
Of course, you can also add this layout constraint through code as suggested above if you're feeling adventurous.
您想要的行为需要一些代码,您可以在 NSSplitView 的委托上执行这些代码。但是,您可以使用 获得相同的结果BWToolKit。
The behavior that you want required some code that you can do on the NSSplitView's delegate. However, you can have the same result using BWToolKit.
我认为它应该与 NSLayoutConstraint 一起使用,我目前在 :) 上工作。
编辑:
也许根据海登的评论提供有关我的答案的更多详细信息。您可以通过代码或在 IB 中定义约束。
在 IB 中,选择左侧子视图,然后单击右下角的约束按钮来定义宽度约束。如果您现在选择这个新约束,您可以设置宽度并说它应该相等并设置您喜欢的大小。
第二种方法是在代码中创建一个 NSLayoutConstraint 对象,我是这样做的(这只是一个例子,并没有定义固定宽度)。
一般来说,您可以在术语 自动布局。要使用它,您必须启用自动布局,并且此功能将取代旧的自动调整大小功能。 (因此我在代码中禁用自动调整大小蒙版)。
这个功能很新,你可以用它做复杂的事情,但我认为我值得学习。
I think it should work with a NSLayoutConstraint, I work at the moment on at :).
EDIT:
Maybe to provide more details on my answer based on the comment hayden. You can define a constraint either by code or in the the IB.
In the IB select your left subview and click on the constraint buttons in the lower right corner defining a width constraints. If you select this new constraint now you can setup the the width an say it should be equal and set the size you like.
The seconed way is to create in code a NSLayoutConstraint object, i do it like this (this is just an example, and define not a fix width).
In general you find documentation to this topic under the term Auto Layout. To use it you have to enable auto layout and this featuer replace the old autosizing functions. (therefore i disable autosizing mask in the code).
This feature is quit new and you can do complex stuff with it but i think I is worth to study.