我有一个带有2个窗口的Xamarin / MonoMac项目。主窗口打开,其功能应该如此。但是,我有一个需要打开第二个窗口的按钮(让我们调用第一个窗口“Main”,第二个窗口调用“Second”)。两者都有各自的XIB文件和控制器类。
该按钮在MainWindowController中设置,并且正常运行:
secondButton.Activated += (o, e) => {
//Do stuff
}
Console.WriteLine()等方法;单击按钮时按预期运行。
设置第二个窗口控制器类,使其:
public partial class SecondWindowController : MonoMac.AppKit.NSWindowController {
...
}
我需要做的是使secondButton在被点击时打开SecondWindow实例,同时将MainWindow的活动实例传递给SecondWindow构造函数。
在C#.NET中,我只想使用
SecondWindow sc = new SecondWindow(this);
sc.ShowDialog();
我可以使用此
打开SecondWindowNSWindowController nsc = new NSWindowController("SecondWindow", this);
nsc.ShowWindow(this);
但这会导致错误陈述
“Interface Builder文件中的未知窗口类SecondWindow,而是创建一个通用窗口。”
窗口显示它应该显示,但是在SecondWindowController函数中没有函数,即使我运行
nsc.AwakeFromNib();
打开窗口后直接。没有控制台输出,也没有任何按钮工作。
如何让窗口打开并正常运行?如果需要更多信息,请告诉我需要添加的内容,以便我能帮到您。
先谢谢!
答案 0 :(得分:0)
要从故事板获取窗口,您需要使用NSStoryboard.InstantiateControllerWithIdentifier(string id) as NSWindowController
此外,您必须将id设置为故事板中窗口的标识符。