Mik*_*ade 10 cocoa nswindowcontroller
我有一个使用NSWindowController子类的简单Cocoa应用程序.在笔尖我设置:
我的NSWindowController子类的init方法被调用(我称之为超级),但不管我做什么都不会调用windowDidLoad.
我必须遗漏一些明显的东西,但对于我的生活,我无法弄清楚它是什么.
Rob*_*ger 24
您正尝试NSWindowController通过在另一个nib中实例化它来创建实例.但是,当您在nib文件中实例化一个对象时,它会通过调用进行初始化-initWithCoder:.
-initWithCoder:不是指定的初始值设定项NSWindowController,因此您的实例NSWindowController永远不会实际加载其笔尖.
不是NSWindowController通过将实例放在MainMenu.xibInterface Builder 中的文件中来实例化,而是以编程方式创建它:
在AppDelegate.h中:
@class YourWindowController;
@interface AppDelegate : NSObject
{
YourWindowController* winController;
}
@end
Run Code Online (Sandbox Code Playgroud)
在AppDelegate.m中:
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification*)notification
{
winController = [[YourWindowController alloc] init];
[winController showWindow:self];
}
- (void)dealloc
{
[winController release];
[super dealloc];
}
@end
Run Code Online (Sandbox Code Playgroud)
在YourWindowController.m中:
@implementation YourWindowController
- (id)init
{
self=[super initWithWindowNibName:@"YourWindowNibName"];
if(self)
{
//perform any initializations
}
return self;
}
@end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10782 次 |
| 最近记录: |