Cocoa - 如何以编程方式初始化视图?

时间:2012-10-04 18:50:42

标签: macos cocoa nsview nswindow appkit

我在理解如何初始化视图而不在我的nib文件中挂起它时遇到问题。 所以我想要做的是,不是在视图中拖动并为其分配专用类,我想以编程方式将其添加到我的应用程序委托中的窗口。

我真的不知道这有多错,但我在AppDelegate中尝试过这样的事情:

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    DView *dV = [[DView alloc]initWithFrame:NSMakeRect(0, 0, 1000, 600)];
    [self.window addSubview:dV];
}

我认为窗口也是NSView,为什么不把它添加到它?但是这会崩溃并以无限循环结束。我希望你能帮助我。谢谢。

1 个答案:

答案 0 :(得分:3)

是,

MONView * view = [[MONView alloc] initWithFrame:someFrame];

是对的。


  

我认为窗口也是NSView

不是 NSView(它是NSResponder)。正如Richard Stahl指出的那样,您应该与窗口的内容视图进行交互:[window.contentView addSubview:view];