如何使用MonoMac / Xamarin打开或创建新窗口?

时间:2014-05-28 19:59:59

标签: c# .net macos xamarin monomac

我有一个带有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();

我可以使用此

打开SecondWindow
NSWindowController nsc = new NSWindowController("SecondWindow", this);
nsc.ShowWindow(this);

但这会导致错误陈述

“Interface Builder文件中的未知窗口类SecondWindow,而是创建一个通用窗口。”

窗口显示它应该显示,但是在SecondWindowController函数中没有函数,即使我运行

nsc.AwakeFromNib();
打开窗口后直接

。没有控制台输出,也没有任何按钮工作。

如何让窗口打开并正常运行?如果需要更多信息,请告诉我需要添加的内容,以便我能帮到您。

先谢谢!

1 个答案:

答案 0 :(得分:0)

要从故事板获取窗口,您需要使用NSStoryboard.InstantiateControllerWithIdentifier(string id) as NSWindowController

此外,您必须将id设置为故事板中窗口的标识符。