NSWindow 绑定加载事件用于控件和逻辑初始化
NSWindow bind load event for control and logic initialization
我刚开始开发 OSX 应用程序,第一次是在 objective-c。我需要制作一个 window 来显示计算机上所有可用的网络接口。
到目前为止
- 我有一个
AppDelegate
几乎什么都不做
- 我已经将
Main nib file base name
设置为我的主要 window,这是一个 xib、头文件和实现文件
- 我让我的 xib window 继承自我的 class 并使用右键单击拖动添加了我需要的出口(效果很好,我认为在那之前我是正确的)
问题
我似乎无法覆盖或绑定 window 的加载事件,我想在我的标签中加载文本。
我看到有些人使用 NSWindowController,但我认为我不需要这个。
我的问题
是否需要 NSWindowController
加上 NSWindow
class?我觉得单个 window 的文件太多了。我有 xib 和两个 .h/.m 文件...如果不需要,我如何在 window 加载时收到通知?
您是否需要 NSWindowController
(s) 的问题取决于您的应用程序的复杂性。
如果您的应用程序只是一个使用单个 window 的小型实用程序,您可能会在 MainMenu.xib 中设置 UI 并将其连接到 AppDelegate 中的某些 IBOutlets
。
但是当您的应用变得更加复杂时,上述方法很快就会变得混乱。为了驯服这种复杂性,您可以创建专用的 NSWindowController
类(例如每个 window 一个)。这些 window 控制器可以管理子级 NSViewControllers
的层次结构,以进一步分解您的复杂性。
If it's not required, how can I get notified when the window loads?
默认的 Xcode 模板应该已经创建了一个 AppDelegate.m 文件。您可以在
中添加代码来初始化您的 UI
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
此时window已经完全加载并且
@property (weak) IBOutlet NSWindow *window;
应该指向您的 window 实例。
我刚开始开发 OSX 应用程序,第一次是在 objective-c。我需要制作一个 window 来显示计算机上所有可用的网络接口。
到目前为止
- 我有一个
AppDelegate
几乎什么都不做 - 我已经将
Main nib file base name
设置为我的主要 window,这是一个 xib、头文件和实现文件 - 我让我的 xib window 继承自我的 class 并使用右键单击拖动添加了我需要的出口(效果很好,我认为在那之前我是正确的)
问题
我似乎无法覆盖或绑定 window 的加载事件,我想在我的标签中加载文本。
我看到有些人使用 NSWindowController,但我认为我不需要这个。
我的问题
是否需要 NSWindowController
加上 NSWindow
class?我觉得单个 window 的文件太多了。我有 xib 和两个 .h/.m 文件...如果不需要,我如何在 window 加载时收到通知?
您是否需要 NSWindowController
(s) 的问题取决于您的应用程序的复杂性。
如果您的应用程序只是一个使用单个 window 的小型实用程序,您可能会在 MainMenu.xib 中设置 UI 并将其连接到 AppDelegate 中的某些 IBOutlets
。
但是当您的应用变得更加复杂时,上述方法很快就会变得混乱。为了驯服这种复杂性,您可以创建专用的 NSWindowController
类(例如每个 window 一个)。这些 window 控制器可以管理子级 NSViewControllers
的层次结构,以进一步分解您的复杂性。
If it's not required, how can I get notified when the window loads?
默认的 Xcode 模板应该已经创建了一个 AppDelegate.m 文件。您可以在
中添加代码来初始化您的 UI- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
此时window已经完全加载并且
@property (weak) IBOutlet NSWindow *window;
应该指向您的 window 实例。