1

我对 Mac OSX 应用程序相当陌生,但我正在尝试构建一个没有状态栏的应用程序,并且尺寸更小。所以我在 AppDelegate.m 中所做的是:

-(void)applicationDidFinishLaunching:(NSNotification *)aNotification
  {
    self.mainViewController = [[MainViewController alloc]  initWithNibName:@"MainViewController" bundle:nil];
    [self.window.contentView addSubview:self.mainViewController.view];
    [self.window setOpaque:NO];
    [self.window setStyleMask:NSBorderlessWindowMask];
    [self.window setBackgroundColor:[NSColor clearColor]];
    self.mainViewController.view.frame = ((NSView*)self.window.contentView).bounds;
 }

现在,我真正想做的是让我的窗口看起来像我在界面构建器中构建的(还不能发布图片)。我尝试关闭所有自动调整大小的元素,但是当我运行模拟器时,我得到了界面的剪辑版本(每次运行时大小都会改变)。似乎框架大小被错误计算了,但我已经从界面构建器中完成了所有工作。我可以以编程方式设置视图的形状,但是有没有办法关闭所有调整大小并简单地将 xib 文件描绘成我在界面构建器中看到的内容?

4

2 回答 2

1

有两种方法可以解决这个问题。

  1. 你添加一个 AutoresizingMask 到你的 ViewController:

    [self.mainViewController setAutoresizingMask:NSViewAutoresizingFlexibleWidth|NSViewAutoresizingFlexibleHeigt];

  2. 您可以通过设置其最小和最大尺寸来禁用界面构建器中的窗口调整大小。这也可以在代码中完成。

在此处输入图像描述

编辑:感谢 trojanfoe 指出您也可以在属性检查器中取消选中调整大小。

于 2013-09-30T09:08:12.227 回答
0

您可以轻松地以编程方式调整窗口大小。就是这样:

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    // Insert code here to initialize your application
    NSRect frame;
    frame.size.height = 200;
    frame.size.width = 200;
    [window setFrame:frame display:YES animate:YES];
}
于 2013-09-30T09:12:40.163 回答