Mac开发:窗口、菜单与面板的深入探索
1. 窗口创建与控制器子类化
在开发过程中,通过应用程序的新按钮,每次点击都能创建新窗口。实际上,每次点击都会创建一个新的 NSWindowController
实例,该实例会加载nib文件的全新副本,其中包含了文件内的所有对象。
若要对控制器类添加自定义代码,可以轻松地对 NSWindowController
进行子类化。以下是具体操作步骤:
1. 在Xcode的 WindowLab
项目中创建一个新类 NotSoEasyWindowController
,通过选择 File - New File...
并选择创建 NSWindowController
子类。
2. 由于是自定义类,可以将nib文件名内置在类中,让使用者只需了解类名,无需知晓nib文件名。同时,为了方便调用者,将 window
调用构建到 init
方法中,代码如下:
- init {
if ((self = [super initWithWindowNibName:@"NotSoEasyWindow"])) {
[self window];
}
return self;
}
- 为窗口控制器类添加一个小功能,即创建一个方法,调用时让计算机发出蜂鸣声。在新类的