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

Posted

技术标签:

【中文标题】Cocoa - 如何以编程方式初始化视图?【英文标题】:Cocoa - How do I initialize a view programmatically ? 【发布时间】:2012-10-04 18:50:41 【问题描述】:

我无法理解如何初始化视图而不将其连接到我的 nib 文件中。 所以我想要做的是,而不是拖入一个视图并为其分配一个专用的类,我想以编程方式将它添加到我的应用程序委托中的窗口中。

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

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification

    DView *dV = [[DView alloc]initWithFrame:NSMakeRect(0, 0, 1000, 600)];
    [self.window addSubview:dV];

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

【问题讨论】:

【参考方案1】:

是的,

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

是正确的。


我认为窗口也是一个 NSView

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

【讨论】:

以上是关于Cocoa - 如何以编程方式初始化视图?的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式设置初始视图控制器 Swift

尝试以编程方式使用嵌套的 Stack 视图制作网格

在带有 XIB 的视图控制器上以编程方式初始化 UISegmentedControl

从 NavigationController 以编程方式初始化可重用的表视图控制器

为啥我们不能在以编程方式设置初始视图控制器时以编程方式在视图控制器之间跳转?

如何以编程方式在 UICollectionView 上添加自动布局?