修正NSWindow大小?

时间:2010-12-03 12:10:10

标签: objective-c cocoa nswindow

我们如何修复NSWindow的大小,以便用户不能通过用鼠标拖动它来调整大小jus或者是否有办法让所有子视图窗口在用户改变窗口大小时调整大小,实际上是问题是当用户更改窗口的大小时,子视图不会解析我想要锁定窗口大小调整吗?

3 个答案:

答案 0 :(得分:5)

我可能在这里忽略了这一点(并且有点晚了),但你不能在窗口本身设置'约束'选项吗?

如果最小和最大尺寸相同,则会阻止调整大小。

enter image description here

答案 1 :(得分:1)

以下假设您正在使用Interface Builder进行窗口布局:

要使子视图调整大小,请转到大小检查器(命令-3),并为每个子视图设置其自动调整大小写和弹力(单击矩形中的红线),直到预览动画执行您想要的操作。记得: (1)如果父母的观点没有伸展,其子女也不会; (2)如果您正在使用滚动条,如果内容在与滚动条相同的方向上可伸缩,它们将永远不会出现。

如果您确实需要一个锁定窗口,而没有用于调整大小的控件,则可以在Attributes Inspector(command-1)中取消选中这些选项。或者,更简单地说,为窗口创建一个IBOutlet并将其放在代码中:

[self.theWindow setStyleMask:NSBorderlessWindowMask];

答案 2 :(得分:0)

也许不是您所追求的答案,但您可以通过禁用调整大小指示符(通过setShowsResizeIndicator)然后实施...来阻止重新调整大小...

- (NSSize)windowWillResize:(NSWindow *)sender toSize:(NSSize)frameSize

... NSWindowDelegate委托方法,以便它只返回现有的窗口大小。

奇怪的是没有“setCanResize:”方法,但你去了。