Objective c 我应该如何组织我的多窗口用户界面项目?

Objective c 我应该如何组织我的多窗口用户界面项目?,objective-c,xcode,cocoa,window,nswindowcontroller,Objective C,Xcode,Cocoa,Window,Nswindowcontroller,注意:使用Objective-C、Cocoa和Xcode 起初,我在AppDelegate中完成了所有编程,并将所有用户界面元素(如windows)放在同一个“.xib”(nib文件)中。这在一开始非常有效,但后来随着我的应用程序变得更加先进,有了更多的“功能”,一切都变得非常混乱,文件太长,我不喜欢 我现在正在努力进步。我想知道我应该如何(正确和有效地)着手进行一个多窗口项目?我的计划是每个窗口都有一个.xib文件,并且只在AppDelegate中放入必要的内容。然后我会有一个核心文件,用于所

注意:使用Objective-C、Cocoa和Xcode

起初,我在AppDelegate中完成了所有编程,并将所有用户界面元素(如windows)放在同一个“.xib”(nib文件)中。这在一开始非常有效,但后来随着我的应用程序变得更加先进,有了更多的“功能”,一切都变得非常混乱,文件太长,我不喜欢

我现在正在努力进步。我想知道我应该如何(正确和有效地)着手进行一个多窗口项目?我的计划是每个窗口都有一个.xib文件,并且只在AppDelegate中放入必要的内容。然后我会有一个核心文件,用于所有必要的计算,并在我的应用程序中使用,还有一个主控制器文件,用于控制我应用程序中所有窗口的出口和操作。然而,我对Objective-C还是一个新手,在尝试设置窗口控制器时遇到了很多问题

我走的路对吗?我做错了吗?如何在Xcode中管理多窗口用户界面应用程序


提前感谢。

对于多个窗口,我认为最好为每个窗口使用一个NSWindowController,并为窗口使用相关的xib文件。我不知道你所说的“控制所有窗口的出口和操作的主控制器文件”是什么意思——每个窗口控制器都有自己窗口的出口。无法跨多个xib文件连接插座。在main menu.xib文件中可以有一个窗口,在创建项目时默认情况下可以使用该窗口启动其他窗口,但如果不知道所有窗口之间的关系,则很难提供任何更具体的建议

编辑后:

如果要打开另一个窗口,请使菜单项的操作方法如下:

    self.controller = [[WindowController alloc] initWithWindowNibName:@"WindowController"];
    [self.controller showWindow:nil];

在这里,我有一个名为controller的属性来保持对新窗口控制器的强引用。如果不这样做,控制器将被解除分配,因此,如果您有多个要同时显示的窗口,则需要属性来保存这些窗口。

谢谢您的输入。这就是我的意思。一个主窗口(和菜单)。菜单是我主要调用其他窗口打开的地方。使用另一个窗口的控制器实例化该窗口的最佳方式是什么(即单击菜单中的“打开窗口”打开单独xib/控制器的窗口a)?非常感谢!我有一个“主”文件,我将使用该文件从主窗口(和主菜单)执行出口/操作。我在这个“主”文件中有一个NSWindowController属性,我将它用作self.controller的强引用。因此,当我想在不同的xib文件中打开另一个窗口时,我也将使用该窗口的控制器。我还必须在主xib中添加一个对象,并将该对象用于出口/操作。我这样做是否正确?*我的大多数*窗口不会相互交互,尽管有些可能需要在其他窗口的字段中获取和/或设置值。是的,我认为这听起来不错。谢谢您的时间。我已把你的回答标为最佳/正确答案。