Mik*_*ade 10 cocoa nswindowcontroller
我有一个使用NSWindowController子类的简单Cocoa应用程序.在笔尖我设置:
我的NSWindowController子类的init方法被调用(我称之为超级),但不管我做什么都不会调用windowDidLoad.
我必须遗漏一些明显的东西,但对于我的生活,我无法弄清楚它是什么.
Rob*_*ger 24
您正尝试NSWindowController
通过在另一个nib中实例化它来创建实例.但是,当您在nib文件中实例化一个对象时,它会通过调用进行初始化-initWithCoder:
.
-initWithCoder:
不是指定的初始值设定项NSWindowController
,因此您的实例NSWindowController
永远不会实际加载其笔尖.
不是NSWindowController
通过将实例放在MainMenu.xib
Interface 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 次 |
最近记录: |