如何在基于NSDocument的Cocoa应用程序中使用NSViewController

前端之家收集整理的这篇文章主要介绍了如何在基于NSDocument的Cocoa应用程序中使用NSViewController前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有很多iOS经验,但 Cocoa让我有些困惑.我阅读了几篇关于Cocoa的Apple文档,但仍然有一些我在任何地方都找不到的细节.看来文档是在基于NSDocument的 Xcode模板更新为使用NSViewController之前编写的,所以我不清楚我应该如何组织我的应用程序.该模板使用NSWindow NSViewController创建一个故事板.

我的理解是我应该将NSWindowController或NSWindow子类化为对我的模型对象的引用,并在makeWindowControllers()中设置它.但是,如果我想使用NSViewController而不是只是将所有内容放在窗口中,我还需要以某种方式访问​​我的模型.我注意到在我的视图控制器中有一个叫做RepresentObject的东西,它似乎意味着要保存一些模型对象(然后被强制转换),但它总是为零.这是如何设置的?

我发现很难正确地提出这个问题,但我想我的问题是:如何在基于文档的应用程序中正确使用NSViewController?

PS:我知道NSWindowController通常用于管理多个窗口,这些窗口作用于一个文档,所以假设我只需要一个窗口,那么我就不需要NSWindowController.但是,要求可能会改变,从长远来看使用NSWindowController可能会更好,对吧?

解决方法

我没有潜入故事板,但这是它的工作原理:

如果您的应用程序必须支持10.9及更低版本创建子类NSWindowController的自定义

将这样的代码放入NSDocument子类中

- (void)makeWindowControllers
{
  CustomWindowController *controller = [[CustomWindowController alloc] init];
  [self addWindowController:controller];
}

如果你的应用程序有多个窗口而不是在这里或其他地方添加它们(按需加载)但不要忘记将它添加文件windowscontroller数组(addWindowController

猜你在找的iOS相关文章