這看起來應該很容易,但我必須錯過一些東西。我有一個基於文檔的應用程序。我還構建了一個新的XIB,它具有NSTableView和三個按鈕,我打算顯示以前的文件列表。我希望在應用程序首次啓動時顯示此XIB而不是文檔窗口。一旦用戶選擇一箇舊文件或點擊「新建」按鈕,我希望然後轉到文檔窗口。這是很常見的,我經常見到它。開始一個基於Cocoa文檔的應用程序首先顯示選擇窗口
在我試圖得到這個工作,我已經修改project-info.plist文件,並將主要的NIB文件庫名稱從MyDocument更改爲我的選擇XIB名稱。這會導致應用程序顯示選擇窗口而不是MyDocument窗口。到目前爲止,似乎沒有問題。
在我的選擇窗口中,我爲這個XIB設置了我的表視圖,一個數組控制器和一個自定義窗口控制器。我已將文件所有者設置爲新的窗口控制器,並將窗口控制器的窗口屬性綁定到窗口,並將窗口的委託屬性綁定到文件所有者以及「選擇」,「取消」和「新建」按鈕。沒有任何約束NSApplication。但奇怪的是,當我運行該應用中它似乎想這些控制器的NSApplication與錯誤(同爲其他兩個按鈕)連接:
無法連接動作selectButton:目標類的NSApplication
它也顯示一個錯誤,NSApplication不符合關鍵值符合保持對我的數組的引用的插座。數組控制器,窗口和按鈕不綁定到NSApplication,而是綁定到新的窗口控制器。我會預料到,如果有任何問題,就不會提到NSApplication,而是控制器綁定到的窗口控制器。
任何人都知道這裏發生了什麼?這是一個Target-Action問題,因爲我將「主要NIB文件庫名稱」從「主菜單」更改爲「選擇」?如果我不應該改變這個,那麼我怎麼才能讓Cocoa在顯示文檔窗口之前顯示選擇屏幕?
任何幫助,非常感謝。 Rob
這幫了很大忙。一些讓我失望的是使用核心數據的文檔應用程序不會自動創建應用程序委託。一旦我創建了委託,我就可以停止自動創建,然後打開我的初始窗口。非常感謝! – Rob 2010-10-13 22:16:47