발행합니다. 나는 그 문제에 대해 여러 가지가 있으며, 그들 모두에게 공통적 인 문제라는 희망으로 그들을 나열 할 것이다.MonoMac BeginSheet 내가 MonoMac 응용 프로그램을 쓰고 있어요 그리고 내가 BeginSheet과 사투를 벌인거야
BeginSheet를 통해 로그인 창을 시트로 표시 할 수 있지만 MainMenu 대신 응용 프로그램의 속성에서 MainWindow에 내 응용 프로그램의 기본 인터페이스를 설정하면 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
});
상관 도움이 될 것를 고맙습니다.
당신은 MainWindow를에 응용 프로그램의 주요 인터페이스를 전환 할 때 방법은 MainWindowController의 일부이기 때문에 WindowDidLoad() 메소드가 호출되지 않습니다