我刚刚开始研究OSX应用程序,第一次是在objective-c中。我需要创建一个窗口,显示计算机上可用的所有网络接口。
到目前为止
AppDelegate
几乎没有任何作为Main nib file base name
设置为我的主窗口,这是一个xib,标题和实现文件问题
我似乎无法覆盖或绑定窗口的加载事件,我想在标签中加载文本。
我见过有些人使用NSWindowController,但我认为我不需要这个。
我的问题
是否需要NSWindowController
加上NSWindow
课程?我觉得单个窗口的文件太多了。我有xib和两个.h / .m文件......如果不需要,我怎样才能在窗口加载时得到通知?
答案 0 :(得分:1)
您需要NSWindowController
(s)与否的问题取决于您申请的复杂程度
如果您的应用只是一个使用单个窗口的小工具,您可能会在MainMenu.xib中设置您的UI并将其连接到AppDelegate中的某个IBOutlets
。
但是当您的应用变得更加复杂时,上述方法很快就会变得混乱。为了驯服这种复杂性,您可以创建专用的NSWindowController
类(例如,每个窗口一个)。这些窗口控制器可以管理子NSViewControllers
的层次结构,以进一步分解您的复杂性。
如果不需要,如何在窗口加载时收到通知?
默认的Xcode模板应该已经创建了一个AppDelegate.m文件。您可以在
中添加用于初始化UI的代码- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
此时窗口已满载
@property (weak) IBOutlet NSWindow *window;
应指向您的窗口实例。