2012-11-25 52 views
2

使用MonoMac,我有一個基於NSDocument的應用程序,但我需要在單擊按鈕時創建一個新的NSDocument對象。當使用MonoMac如何實例化NSDocument

例如。我有另一個窗口,我有一個NSWindowController,我可以做

Controller c = new Controller(); 
c.Window.MakeKeyAndOrderFront (this); 

因此導致窗口被加載綁定到控制器。

與NSDocument我猜控制器內置? 所以我期待像

MyNSDocument doc = new MyNSDocument ("Some Value "); 
doc.Window.MakeKeyAndOrderFront (this); 

當然這是行不通的。

其他信息,例如在應用程序中時,如果您點擊Command + N,則會加載新的文檔窗口。這很酷,我基本上需要同樣的事情發生,但是當一個按鈕被點擊時。

回答

1

使用「文件」/「新建」或Control + N在應用程序的共享文檔控制器(menu.xib的First Responder)上調用newDocument:

要做到同樣的程序,使用NSDocumentController.SharedDocumentController獲取應用程序的共享文檔控制器,然後調用它NewDocument()(你可以通過null發件人):

var controller = (NSDocumentController)NSDocumentController.SharedDocumentController; 
controller.NewDocument (null); 
+0

你是一個搖滾明星!非常感謝!!! – Jared