5

我只是在玩 OSX 应用程序开发。我完全是菜鸟。我认为它就像 iOS 应用程序开发一样直截了当。但是经过几天的努力,似乎并不那么容易。

这就是我想要做的。我有一个 NSWindow。在其中我放了一个 Image Well(带有命名?lol)以及“Image Well”,它是一个 NSImageView(不是双关语)。

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

这是我所做的不起作用:

NSImageView 作为 imageView。

编写 NSWindow windowDidResize 和 windowDidResize: 的委托方法 NSWindowDelegate 方法,并在其中调整图像视图的 imageView 框架的 framesize。代码:(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调整大小?

4

1 回答 1

3

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

似乎这种行为是由于 Interface Builder 的“自动布局”功能造成的。

要修复它,只需在 MainMenu.xib 中禁用“自动布局”。 请参阅此处了解说明

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

于 2012-10-14T23:40:49.770 回答