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

Macos Cocoa-如何以编程方式初始化视图?,macos,cocoa,nsview,nswindow,appkit,Macos,Cocoa,Nsview,Nswindow,Appkit,我在理解如何在不将视图连接到nib文件的情况下初始化视图时遇到问题。 因此,我想做的是,我不想在视图中拖动并为其分配一个专用类,而是通过编程将其添加到我的应用程序委托中的窗口中 我真的不知道这有多错,但我在AppDelegate中尝试了类似的方法: - (void)applicationDidFinishLaunching:(NSNotification *)aNotification { DView *dV = [[DView alloc]initWithFrame:NSMakeRec

我在理解如何在不将视图连接到nib文件的情况下初始化视图时遇到问题。 因此,我想做的是,我不想在视图中拖动并为其分配一个专用类,而是通过编程将其添加到我的应用程序委托中的窗口中

我真的不知道这有多错,但我在AppDelegate中尝试了类似的方法:

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    DView *dV = [[DView alloc]initWithFrame:NSMakeRect(0, 0, 1000, 600)];
    [self.window addSubview:dV];
}
我想这个窗口也是一个NSView,为什么不直接添加它呢?但这会崩溃,并以无限循环结束。我希望你能帮助我。谢谢

是的

MONView * view = [[MONView alloc] initWithFrame:someFrame];
这是正确的


我想窗口也是一个NSView

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