我正在创建一个测试应用程序,尝试使用Mac的MVC。

我创建了5个笔尖文件,每个文件都有不同的窗口,以及每个笔尖的类文件。

我该怎么做,当您按下MainMenu.xib上的按钮时,它将打开一个新视图?

我已经见过在iOS上使用initWithNibName:的用法,但是找不到在Mac上如何使用。还是我走错路了?如果是这样,您如何使用Xcode在Mac应用程序中管理不同的视图和类?

最佳答案

因为您提到“我创建了5个nib文件,每个文件都有不同的窗口,并且为每个nib创建了类文件”。我假设您有5个不同的窗口(非视图),并希望在按下按钮时将其打开。

每个窗口笔尖文件均由NSWindowController控制,该NSWindowController在MVC中为C。要实际(以编程方式)加载一个nib文件,可以给它分配一个NSWindowController。 OS X中的UIViewController与iPhone上的[controller showWindow:nil]相当。

NSWindowController *controller = [[NSWindowController alloc] initWithWindowNibName:@"nib1"]


然后,您可以打开/关闭NSWindowController管理的窗口。

[controller.window makeKeyAndOrderFront:self]显示窗口

使窗口成为关键窗口。

但是,您可能打算做其他事情,即保留相同的窗口,但切换该窗口的内容视图。在那种情况下,您需要包含视图的nib文件(并使用NSViewControllers加载它们),而不是窗口(因为拥有窗口将是多余的)。

但是,即使您坚持使用Windows,也要替换contentView:

[currentWindow setContentView:[newWindowController.window contentView]];












您应该阅读Apple必须在Windows,视图和应用程序上提供的所有文档。


Fundamentals
Views
Windows

关于objective-c - 在OSX上等同于initWithNibName :?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10165078/

10-12 05:15