它们被命名为“WYSunFlowerWindowController.h”和“WYSunFlowerWindowController.m”.
然后我添加init函数,如下所示:
- (ID)init{ NSLog(@"init()"); return [super initWithWindowNibname:@"WYSunFlowerWindowController" owner:self];}
我的WYAppDelegate.m文件如下所示:
static WYSunFlowerMainWindowController* windowController = nil;- (voID)applicationDIDFinishLaunching:(NSNotification *)aNotification{ // Insert code here to initialize your application if (windowController == nil) { windowController = [[WYSunFlowerMainWindowController alloc] init]; } [[windowController window] makeKeyAndOrderFront:windowController];}
我有问题,在我启动应用程序后,窗口无法自我显示.谁能告诉我为什么?我的代码有什么问题吗?
我是Objective-C和可可的新手.所以我想我可能犯了一个愚蠢的错误,我自己无法弄明白.
更新:
这是我的项目来源.请看看,帮我弄清楚我的错误是什么.
https://dl.dropbox.com/u/3193707/SunFlower.zip
解决方法 在你的init方法中,我认为你必须在返回self之前先将self设置为super init.-(ID)init{ NSLog (@"init()"); self = [super initWithWindowNibname:@"WYSunFlowerWindowController" owners:self]; return self;}
编辑:
尝试使用[windowController showWindow:self]替换makeKeyAndOrderFront:
然后,如果仍然不起作用,请检查窗口控制器xib,确保文件所有者设置为WYSunFlowerWindowController,并且IBOutlet窗口(在NSWindowController中声明)连接到窗口.
编辑2:
在你的控制器中注释掉你的@property和@synthesize窗口是个窍门.不要重新声明已在超类中预定义的get和setter.
总结以上是内存溢出为你收集整理的objective-c – 如何使用NSWindowController在标准应用程序中显示窗口?全部内容,希望文章能够帮你解决objective-c – 如何使用NSWindowController在标准应用程序中显示窗口?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)