2010-12-03 83 views
3

我们如何修复NSWindow的大小,以便用户不应该能够通过鼠标拖动它来调整它的大小,或者有一种方式,以便所有的子视图窗口在用户更改窗口大小时调整大小,实际上问题是当用户更改窗口的大小时,子视图不resresses我想锁定窗口调整大小?修复NSWindow大小?

回答

0

也许不是你后的答案,但你可以防止调整大小通过禁用调整大小的指标(通过setShowsResizeIndicator),然后执行...

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

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

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

1

下面假设你使用界面生成器为您的窗口布局:

为了让子视图来调整,转到尺寸检查(命令3),并为每个子视图,设置它会自动调整大小和支柱(点击矩形中的红线),直到预览动画按你想要的进行。记住: (1)如果父母的观点没有延伸,孩子也不会; (2)如果你使用的是滚动条,如果内容在与滚动条相同的方向上可伸缩,它们将永远不会出现。

如果您确实需要一个锁定的窗口,并且没有调整大小的控件,您可以取消选中属性检查器(command-1)中的这些选项。或者更简单地说,让一个IBOutlet的窗口,把这个在你的代码:

[self.theWindow setStyleMask:NSBorderlessWindowMask]; 
5

我可以在这里失去了一点(和有点晚了),但你能不能上设置的“限制”选项窗户本身?

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

enter image description here