C# Xamarin.Mac/Cocoa等效于窗口加载事件?

C# Xamarin.Mac/Cocoa等效于窗口加载事件?,c#,macos,cocoa,xamarin,xamarin.mac,C#,Macos,Cocoa,Xamarin,Xamarin.mac,我正在开发我的第一个Xamarin.Mac应用程序,以编写现有WPF应用程序的Mac版本。我是根据我在报纸上读到的东西写的 我有几个地方,我想做的事情,以回应窗口被加载。在WPF中,我只需将一个事件处理程序附加到窗口的已加载事件,并完成处理 在Xamarin.Mac中,有一个Cocoa窗口,它的等价物是什么?还是有更好的模式可以使用?我在Window和WindowController类上看到了各种Did*事件,但没有“DIDLOAD”事件或任何类似的事件 我不想在构造函数中这样做,因为它们可能需

我正在开发我的第一个Xamarin.Mac应用程序,以编写现有WPF应用程序的Mac版本。我是根据我在报纸上读到的东西写的

我有几个地方,我想做的事情,以回应窗口被加载。在WPF中,我只需将一个事件处理程序附加到窗口的已加载事件,并完成处理

在Xamarin.Mac中,有一个Cocoa窗口,它的等价物是什么?还是有更好的模式可以使用?我在Window和WindowController类上看到了各种Did*事件,但没有“DIDLOAD”事件或任何类似的事件

我不想在构造函数中这样做,因为它们可能需要一段时间,我不想阻止窗口显示-我希望窗口先在那里,然后我开始这些事情


有什么指导吗?

从同一个指导中,您应该将此覆盖添加到MainWindow类中

public override void AwakeFromNib ()
{
    base.AwakeFromNib ();
    // enter code here
}
我们需要使用AwakeFromNib,而不是其他方法,例如 初始化,因为AwakeFromNib是在操作系统加载和 从.xib文件实例化用户界面。如果我们试图 在.xib文件完全加载之前访问label控件 然后实例化,我们会得到一个NullReferenceException错误,因为 尚未创建标签控件