1

我正在寫使用的Xcode 4.共享各種視圖/碎粒

的OSX(獅)的應用擊中位壁的與這一個和互聯網之間具有用於綁定的對象(具體爲NSDocument)因此 - 證明不是特別有用。

我有一個定義的文檔,以及MainMenu.xib和一個文檔窗口;文檔窗口當然是在文檔加載/創建時創建的,因此可以訪問相關數據。

我想盡可能多地利用Cocoa綁定在這個項目中,所以我的問題是這樣的:

如果我創建另一個視圖(比方說有一個鏈接筆尖的NSViewController);我如何允許它訪問文檔的數據?

我試過爲文檔類添加一個#import,但是當我向文檔類添加#import到視圖控制器(創建它)時,會導致問題 - 我得到未知類型的編譯錯誤。我也沿着傳遞臨時對象的路線(甚至在創建視圖控制器後訪問getters/setter);當然必須有更好,更清潔的方式?

應用程序只有一個NSWindowController(默認值),就是它,它是基於XCode非核心數據文檔的應用程序模板的香草。

感謝您的幫助, 克林特

回答

1

你需要在你的其他類的物事文檔的參考,如果你想綁定到它。由於您已使用NSViewController,因此您可以將NSViewControllerrepresentedObject設置爲您的文檔。或者,您可以子類NSViewController並創建一個自定義屬性以引用該文檔。

YourViewController* controller = [[YourViewController alloc] initWithNibName:@"YourNib" bundle:nil]; 
[controller setRepresentedObject:yourDocument]; 

在Interface Builder中,然後可以將您的視圖控制器筆尖文件擁有者使用representedObject.<some property of your document>關鍵路徑綁定的對象。

+0

我會在稍後當我接近我的prized mac:p(我寫這個錢的windows軟件)時測試這個。非常感謝你的幫助! – Clint