模态会话需要Mac上的模态窗口错误

时间:2010-11-25 06:20:56

标签: objective-c cocoa macos interface-builder

我需要从视频应用程序中的插件启动模态窗口。我在Interface Builder中创建了一个Nib以及一个NSWindowController类。但是当我尝试像这样运行窗口时

Registration* newWin = [[Registration alloc] initWithWindowNibName:@"Options"];

[NSApp runModalForWindow: [newWin window]];

它在控制台中出现错误:模态会话需要模态窗口 我认为它与Interface Builder有关(请原谅我,我对IB很陌生)。

这是Nib文件和类的链接。如果有人能告诉我在IB中做错了什么,我将不胜感激。感谢。

[已删除链接]

1 个答案:

答案 0 :(得分:17)

您在nib文件中实例化了Registration的实例。这不是你准备一个nib文件用于NSWindowController的方式。 Registration对象是nib文件中包含的不同对象,而不是您在上面引用的代码中分配的Registration对象。

在传递给initWithWindowNibName的笔尖中,File's Owner 是您在代码中创建的NSWindowController实例。因此,在检查器中,将File's Owner的类名设置为Registration,并将其window出口连接为nib文件中的窗口对象。