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 - 如何以编程方式初始化视图?的主要内容,如果未能解决你的问题,请参考以下文章
在带有 XIB 的视图控制器上以编程方式初始化 UISegmentedControl
从 NavigationController 以编程方式初始化可重用的表视图控制器