我只是在玩OSX app dev。我完全是菜鸟。我认为它像iOS app dev一样直截了当。但经过几天的努力,似乎并不那么容易。
这就是我想要做的。我有一个NSWindow。在其中我放置了一个Image Well(与命名一起)?好吧“Image Well”,它是一个NSImageView(没有双关语)。
所以我只想让NSImageView的框架按照NSWindow的大小调整大小。就这么简单。
以下是我所做的不起作用:
NSImageView as imageView。
编写NSWindow windowDidResize和windowDidResize的委托方法NSWindowDelegate方法:只调整其中图像视图的imageView框架的框架大小。代码:( NSImageView位于名为imageView的属性中。)
- (void)windowDidResize:(NSNotification *)notification {
// NSLog(@"resized");
NSRect zWindowRect = [[self window]frame];
NSRect zContentRect = [[self window]contentRectForFrameRect:zWindowRect];
[self.imageView setFrameSize:NSMakeSize(zContentRect.size.width,
zContentRect.size.height)];
[self.imageView setNeedsDisplay:YES];
}
调用此方法(使用NSLog()
进行测试),但NSImageView
只保留原始大小。我检查了IBOutlet
连接是否正常。
是什么给出的?为什么NSImageView
不会调整大小?
答案 0 :(得分:3)
确定。这已成为一种习惯。再次回答我自己的问题。
这种行为似乎是由于Interface Builder的“自动布局”功能。
要解决此问题,只需在MainMenu.xib中禁用“自动布局”即可。 SEE HERE FOR EXPLANATIONS
如果站点过期:只需单击MainMenu.xib,然后转到XCode的Utilities面板中的第一个选项卡File。并且旁边应该有一个“使用自动布局”复选框。取消选中它。