如何让我的视图贴在窗口的右边?

时间:2012-10-07 14:36:53

标签: objective-c macos cocoa nsview

我希望将我的视图“对齐”到我的窗口右侧,而不是调整大小。我输入了下面的代码

tableContainer.autoresizingMask = NSViewHeightSizable | NSViewLayerContentsPlacementRight;

但它总是调整我的视图宽度。我只是想创建一个宽度保持不变的视图,并始终坚持窗口的右侧。就像Photoshop中的面板一样。我如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

您没有为autoresizingMask使用正确的常量。 NSViewLayerContentsPlacementRight枚举与setLayerContentsPlacement:方法一起使用,而不是与setAutoresizingMask:方法一起使用。

autoresizingMask NSView属性的值是the following values, according to the documentation的按位或组合。

因此,出于您的目的,您需要使用 NSViewMinXMargin (而非NSViewLayerContentsPlacementRight),以便左边距灵活,但不是右边距,因此在调整超级视图的大小时,您的视图将保持右边框的距离固定,从而将其保持在超级视图的右侧。

当然,如果您希望视图的高度与其超高视图的高度一起调整,请将此NSViewMinXMarginNSViewHeightSizable按位或组合使用

tableContainer.autoresizingMask = NSViewHeightSizable | NSViewMinXMargin;