Xamarin.Mac/Cooa等效于Window Loaded事件

本文关键字:Window Loaded 事件 Mac Cooa Xamarin | 更新日期: 2023-09-27 18:00:29

我正在研制我的第一个Xamarin。Mac应用程序来编写现有WPF应用程序的Mac版本。我是根据我在"你好,Mac"文档中读到的内容编写的。

我有几个地方想做一些事情来响应加载的窗口。在WPF中,我只需将一个事件处理程序附加到窗口的Loaded事件上,就可以完成它

Xamarin中的等效物是什么。带可可窗的Mac?或者有更好的模式可以使用吗?我在Window和WindowController类上看到了各种Did*事件,但没有"DidLoaded"事件或任何类似的事件。

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

有什么指导吗?

Xamarin.Mac/Cooa等效于Window Loaded事件

在同一指南中,您应该将此覆盖添加到MainWindow类中。

public override void AwakeFromNib ()
{
    base.AwakeFromNib ();
    // enter code here
}

我们需要使用AwakeFromNib,而不是其他方法,例如初始化,因为AwakeFromNib是在OS加载和从.xib文件实例化了用户界面。如果我们尝试在完全加载.xib文件之前访问标签控件并且实例化,我们会得到一个NullReferenceException错误,因为标签控件尚未创建。