NSImageView大小不遵循其窗口

Gen*_*ode 5 cocoa objective-c nswindow nsimageview autolayout

我只是在玩OSX app dev.我完全是菜鸟.我认为它像iOS app dev一样直截了当.但经过几天的努力,似乎并不那么容易.

这就是我想要做的.我有一个NSWindow.在其中我放了一个图像井(与命名一起大声笑)好"图像好",它是一个NSImageView(没有双关语意).

所以我只想让NSImageView的框架按照NSWindow的大小调整大小.就这么简单.

这是我做的不起作用:

NSImageView作为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];


}
Run Code Online (Sandbox Code Playgroud)

调用此方法(使用测试NSLog()),但是NSImageView只保留原始大小.我检查了IBOutlet连接是否正常.

是什么赋予了?为什么不NSImageView调整大小?

Gen*_*ode 3

好的。这正在成为一种习惯。再次回答我自己的问题。

看来这种行为是由于界面生成器的“自动布局”功能造成的。

要修复此问题,只需在 MainMenu.xib 中禁用“自动布局”即可。 请参见此处的说明

如果站点过期:只需单击 MainMenu.xib,然后转到 XCode 实用程序面板中的第一个选项卡“文件”。旁边应该有一个“使用自动布局”复选框。取消选中它。