2011-03-01 20 views
1

我有一种感觉,我已经偶然发现了一个错误(不太可能),或者我只是使用这个函数错误(可能)。我正在试图在我的MainWindow上显示一张表。不过出于某种原因,工作表窗口弹出为没有工具栏的常规窗口,完全不能连接到我的MainWindow。我使用BeginSheet的权利? (MonoMac)

现在我相当新的可可这样的MonoMac你必须原谅我,反正,继承人的代码:

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

我在做什么错在这里?

回答

3

啊哈!设置我的表的窗口属性“启动时可见”解决了我的问题:)

0

您确定窗口是您希望附加工作表的窗口吗?

一个例子,从使用NSAlert我的代码:

alert = new NSAlert(); 

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

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

好的,这段代码的工作原理(尽管我得到了关于泄漏的可怕数量的警告:S)。我怎样才能使用窗口而不是警报工作? – 2011-03-02 15:57:11

+0

如果你得到泄漏,你正在使用没有NSAutoreleasePool的NSObjects在后台线程上工作。使用(var pool = new NSAutoReleasePool()){}封装代码。但是,你永远不应该在任何不是主线程的线程上修改UI。 – 2011-03-02 16:07:44

+0

据我所知,我没有运行NSObject的任何后台线程,除非BeginSheet启动一个? – 2011-03-02 19:49:32