C# 如何使用MonoMac/Xamarin打开或创建新窗口?
我有一个Xamarin/MonoMac项目,有两个窗口。主窗口将打开,并正常运行。但是,我有一个按钮需要打开第二个窗口(让我们将第一个窗口称为“Main”,第二个窗口称为“second”)。两者都有各自的XIB文件和控制器类 该按钮在MainWindowController中设置,功能正常:C# 如何使用MonoMac/Xamarin打开或创建新窗口?,c#,.net,macos,xamarin,monomac,C#,.net,Macos,Xamarin,Monomac,我有一个Xamarin/MonoMac项目,有两个窗口。主窗口将打开,并正常运行。但是,我有一个按钮需要打开第二个窗口(让我们将第一个窗口称为“Main”,第二个窗口称为“second”)。两者都有各自的XIB文件和控制器类 该按钮在MainWindowController中设置,功能正常: secondButton.Activated += (o, e) => { //Do stuff } 方法,如Console.WriteLine();单击按钮时,按预期运行 第二个窗口控制
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();
我可以用这个打开第二个窗口
NSWindowController nsc = new NSWindowController("SecondWindow", this);
nsc.ShowWindow(this);
但这会导致一个错误
Interface Builder文件中的未知窗口类SecondWindow,正在创建常规窗口
窗口按其应显示的方式显示,但SecondWindowController函数中没有任何函数,即使我运行
nsc.AwakeFromNib();
直接打开窗户。没有控制台输出,所有按钮都不工作
我如何才能打开窗口并正常工作?如果需要更多的信息,请让我知道我需要补充什么,这样我就可以给你
提前感谢 要从序列图像板获取窗口,您需要使用NSStoryboard.InstanceControllerWithiIdentifier(字符串id)作为NSWindowController
您还必须将id设置为脚本中窗口的标识符。我不使用Interface Builder,而是使用代码创建和连接我的UI。所以我没有一个好的答案给你。但是,值得一提的是,错误和行为是一致的:当从XIB实例化窗口时,它找不到第二个窗口类,因此它不会实例化该控制器(并且该控制器中的任何代码都不适用)。我注意到您在某些地方使用SecondWindow,在其他地方使用SecondWindowController;检查你是否前后一致。