我正在尝试使用 Objective C++ 从 C++ 构造函数加载 Nib。我已经搜索并找到了足够的示例来组合一些代码,但它没有显示窗口。或任何窗户。
下面是一个构造函数的例子:
JokeSystem::JokeSystem() : fileSystem("/Library/Application Support/Jokes/")
{
try
{
randSystem = new RandSelect<std::string>
(fileSystem.getAllFileContents("%\n"));
}
catch (std::ifstream::failure)
{
NSWindowController * errorWindowControl = [[NSWindowController alloc]
initWithWindowNibName:@"ErrorWindow"];
[errorWindowControl showWindow: nil];
}
}
构造函数的目的是将目录的内容加载到字符串中。我尝试做的是在文件无法打开时显示错误窗口。
ErrorWindow.nib 有一个带有 OK 按钮的窗口和一个NSTextView
用于错误的窗口,我在 nib 中设置了一个NSWindowController
并将其连接到窗口。
我唯一的链接是大多数示例都显示了这一点[errorWindowControl showWindow: self]
;而不是showWindow: nil
因为这是一个 C++ 构造函数,所以我没有它也self
不起作用this
。
如果重要的话,这个构造函数是从 的主要awakeFromNib
方法中调用的。MainMenu.nib
NSObject
谢谢