我正在编写一个 MonoMac 应用程序,但我正在努力使用 BeginSheet。我有很多问题,并会列出它们,希望这是一个普遍存在的问题。
我已经设法让我的 BeginSheet 将我的登录窗口显示为工作表,但是如果我在应用程序的属性中将应用程序的主界面设置为 MainWindow,而不是 MainMenu,那么 BeginSheet 什么也不做。我的代表也永远不会在工作表关闭后运行。我通过调用 Close() 从 LoginDialogController 中关闭 LoginWindow。
这是我在 MainWindowController 上使用的代码:
public override void WindowDidLoad ()
{
base.WindowDidLoad ();
Dialogs.LoginDialogController loginDialog = new Dialogs.LoginDialogController();
loginDialog.Window.IsVisible = false;
NSApplication.SharedApplication.BeginSheet(loginDialog.Window, Window, delegate {
// THIS NEVER RUNS
mainTabView.SelectAt(1);
mainToolbar.SelectedItemIdentifier = "hometoolbaritem";
});
}
在我的其他观点之一中,我使用了以下绝对无效的代码:
TypeDialogController typeDialog = new TypeDialogController();
typeDialog.Window.IsVisible = false;
// THIS CALL HAS NO EFFECT
NSApplication.SharedApplication.BeginSheet(typeDialog.Window, View.Window, delegate {
// THIS WILL PROBABLY NOT RUN EITHER, EVEN IF THE SHEET SHOWS
});
任何帮助,将不胜感激。