注意:使用Objective-C,Cocoa和Xcode。
首先,我在AppDelegate中完成了所有编程,并将所有用户界面元素(例如windows)放在相同的“.xib”(nib文件)中。这起初效果很好,但随着我的应用程序变得越来越先进,越来越多的“功能”,一切都变得非常混乱,文件太长,不符合我的喜好。
我现在正在努力进步。我想知道我应该如何(正确有效地)进行多窗口项目?我的计划是为每个窗口都有一个.xib文件,并且只在AppDelegate中放置必要的东西。然后我会有一个核心文件用于所有必要的计算,例如在我的应用程序和主控制器文件中使用,以控制我的应用程序中所有窗口的出口和操作。但是,我对Objective-C很新,并且在尝试设置Window Controllers和其他东西时遇到了很多问题和问题。
我是否走在正确的道路上?我做错了吗?我应该如何在Xcode中管理多窗口用户界面应用程序?
提前致谢。
答案 0 :(得分:2)
对于多个窗口,我认为最好为每个窗口使用NSWindowController,并为窗口提供相关的xib文件。我不确定你的意思是“一个主控制器文件来控制来自所有窗口的插座和操作” - 每个窗口控制器都有自己的窗口。您无法跨多个xib文件连接出口。您可以在创建项目时默认获得MainMenu.xib文件中的一个窗口,并使用它来启动其他窗口,但很难提供任何更具体的建议,而不知道所有窗口如何相互关联
编辑后:
如果你想打开另一个窗口,请让菜单项的动作方法如下:
self.controller = [[WindowController alloc] initWithWindowNibName:@"WindowController"];
[self.controller showWindow:nil];
在这里,我有一个名为controller的属性来保持对新窗口控制器的强引用。如果你不这样做,控制器将被取消分配,所以如果你有多个窗口,你想要同时显示,你需要属性来保持它们。