右邊的窗口中我已經成功地在我的可可應用程序實現了一個NSDocument類也能夠正確地保存數據。但是在打開文件時我遇到了問題。獲取NSDocument的readFromData :::
這是我的基本設置:
NSDocument MyFile的== XIB文件=> MyFile.xib
NSObject的 FileClass作爲處理類
FileClass是壓縮一個類/解壓縮文件並連接到MyFile.xib中的窗口文本框。保存是通過默認的NSNotificationCenter完成的。數據需要在這個類中處理,因爲它不包含原始NSString。
比方說,我有需要打開我有三個NSDocument情況下,現在通過NSNotificationsCenter發送其數據的三個文件。因爲我有三個NSDocument,所以我有三個窗口和三個FileClass實例。現在,如果正確的FileClass接收數據,那就好運了,因爲我無法過濾接收到的數據是否針對此窗口提出。隨機的FileClass現在處理文件並設置其關聯文本視圖的文本。所以窗口1可以顯示被認爲數據在窗口3.
被示出的數據流:
NSDocument => readFromData => NSNotificationCenter =>隨機FileClass =>相關聯的TextView。
爲了縮小範圍:我如何將數據路由到正確的窗口,我如何/在哪裏包括FileClass在此構造?
在此先感謝!
保羅
似乎你是對的。我可以在NSDocument類中實現我的自定義類。但是,如何訪問我的文本字段呢?我無法將文本視圖綁定到Interface Builder中的NSDocument類,或者我錯了嗎? – Paul
當然可以! NSDocument屬於控制器類組,這意味着它的目的是從模型類(讀取的數據)獲取信息,解釋它們並將它們發送給用戶的視圖類(文本視圖,自定義視圖等)相互作用。從Interface Builder加載XIB文件的NSDocument實例實際上被設置爲XIB「文件所有者」。所以在IB中,「文件所有者」框實際上是您的NSDocument實例。 – Fabian
請記住NSDocument已經初始化,並且在XIB和所有界面的東西被加載之前很久就從磁盤讀取數據。這意味着您確實需要一些模型類來存儲您從磁盤讀取的任何內容,或者至少將這些數據保存在NSDocument的某個實例變量中,以便您可以在稍後階段用數據填充視圖。 – Fabian