2011-03-01 6 views
1

나는 버그를 발견했거나 (아마도있을 법하지 않음)이 함수를 잘못 사용하고 있다는 느낌이 들었다. 내 MainWindow에 시트를 표시하려고합니다. 그러나 어떤 이유로 인해 시트 윈도우는 툴바가없는 일반 윈도우로 팝업되고 절대로 MainWindow에 연결되지 않습니다. 당신이 날 용서해야하므로BeginSheet를 올바르게 사용하고 있습니까? (MonoMac)

가 지금은 코코아와 MonoMac 꽤 새로운 해요, 어쨌든,을 heres 코드 :

 TvShowSheetController sheet = new TvShowSheetController(); 
     NSApplication.SharedApplication.BeginSheet (sheet.Window, Window); 

은 내가 잘못 여기서 뭐하는 거지?

답변

3

아하! 내 시트의 창 속성을 "Visible at Launch"로 설정하면 문제가 해결됨.

0

시트를 첨부 할 창은 확실합니까? NSAlert를 사용하여 내 코드에서

예 :

alert = new NSAlert(); 

alert.AddButton ("OK"); 
alert.MessageText = "Message"; 
alert.InformativeText = "Informative."; 

alert.BeginSheet (Window, delegate { 
    alert.Dispose(); 
    alert = null; 
}); 
+0

Ok,이 코드는 작동합니다 (누수에 대한 경고 : S). 어떻게 경고 대신 창을 사용하여이 작업을 수행 할 수 있습니까? –

+0

누수가 발생하면 NSAutoreleasePool없이 NSObject가있는 백그라운드 스레드에서 작업하고있는 것입니다. (var pool = new NSAutoReleasePool()) {}을 사용하여 코드를 래핑하십시오. 그러나 주 스레드가 아닌 모든 스레드에서 UI를 수정하면 안됩니다. –

+0

내가 아는 한 BeginSheet가 시작하지 않는 한 NSObjects를 사용하는 백그라운드 스레드가 실행되지 않는다는 것을 알 수 있습니까? –

관련 문제