我習慣於使用單個窗口開發基於文檔的應用程序,但現在我正在開發基於文檔的應用程序,我在Xcode 5中創建了基於文檔的模板。當我運行我的應用程序時,它會在啓動時打開一個新的無標題文檔。我希望我的應用程序顯示一個「Open ...」對話框,就像Xcode,TextEdit和其他Apple應用程序一樣,而不是自動創建新文檔。我如何去實現這個?是否有一個標誌可以設置爲顯示對話框而不是新文檔,還是我必須創建一個應用程序委託來顯示啓動時的對話框?謝謝你的建議。如何創建以「打開...」對話框啓動的基於文檔的OS X應用程序
回答
這將是自定義行爲。
在應用程序控制器中覆蓋applicationShouldOpenUntitledFile:
以防止啓動時打開空白文檔,然後顯示文件對話框。
這並不難,但不明顯,需要幾個步驟才能開始。
將窗口添加到MainMenu.xib中 將檢查器中啓動時的Visible設置爲NO。 現在在你的項目中創建一個NSObject子類。您可能會在名稱中包含AppDelegate,因爲您希望將其作爲應用程序的代表。 在接口頭文件中,一定要在NSObject這個詞後面聲明協議。 在那裏,添加一個IBindut屬性NSWindow。 回到MainMenu.xib ... 從庫中向你的xib添加一個NSObject(藍色立方體),並將它的類設置爲你的新的應用程序委託類。 接下來將您的窗口連接到您的應用程序委託類中的屬性,並將窗口的委託出口連接到您的應用程序委託。
現在的菜單。 找到MainMenu中的View菜單並添加一個NSMenuItem。 給它一個標題。 「我喜歡的主窗口」或其他。 現在用兩個IBOutlet將它連接到您的應用程序代理(以防您稍後撥動其啓用狀態或標題) 併爲此菜單項添加IBAction。像showMyFancyWindow:
此菜單項將持久。 在您的IBAction方法中調用makeKeyAndOrderFront:以您的窗口的應用程序委託屬性作爲參數。
附加題
一個BOOL屬性添加到應用程序委託。 類似showsMyFancyWindowAtLaunch
創建一個常量NSString作爲@implementation行上方的鍵。 將複選框按鈕添加到您的窗口。 將它的值綁定到BOOL。 爲該複選框添加一個IBAction方法。 內部的 [NSUserDefaults的sharedDefaults] setBool:self.showsMyFancyWindowAtLaunch forKey:theConstStringKeyYouCreated]
然後在您的applicationDidFinishLaunching: 使用相應的布爾:forKey:的NSUserDefaults的方法來檢查是否要打電話showMyFancyWindow:在啓動方法。
- 1. 基於NSDocument的應用程序,在啓動時使用「新建文檔」按鈕打開對話框
- 2. OS X:注意從應用程序創建對話框
- 3. 在應用程序啓動時創建或打開文檔
- 4. 內置關於OS X中的應用程序對話框10.8
- 5. 使用Objective-C爲OS X應用程序打開文檔
- 6. 通過將其放在OS X中基於文檔的應用程序圖標上打開文檔
- 7. 如何在OS X中使用C++打開「打開文件」對話框?
- 8. 防止在OS X啓動時出現iCloud打開文件對話框
- 9. 基於ID打開的jquery對話框
- 10. OS X應用程序開發框架
- 11. 如何在Java應用程序中修改「關於」OS X對話框?
- 12. Xcode 6.1中新的基於文檔的OS X應用程序模板
- 13. 獲取用於啓動OS X應用程序的初始URL
- 14. 想要打開一個對話框來打開基於Web瀏覽器的應用程序中的文件
- 15. 如何使用通過NSTask啓動的應用程序打開文檔?
- 16. 如何創建無法創建新文檔的基於文檔的應用程序?
- 17. Windows 8應用程序的打開文件對話框
- 18. Android:如何打開睡眠時啓動的對話框?
- 19. 基於文件類型的應用程序選擇對話框
- 20. 點擊程序創建的editext打開datepicker對話框?
- 21. 應該基於非文檔的應用程序使用應用程序模式對話框或表單嗎?
- 22. 如何爲OS X創建可部署的Qt5應用程序
- 23. 如何在「打開」對話框中更改我的應用程序的文本?
- 24. OS X:以編程方式打開關於應用程序窗口
- 25. 從Mac OS X上的Netscape插件打開/保存對話框?
- 26. 如何在打開文檔的同時打開任何應用程序(如word,pdf閱讀器)的打印對話框,以編程方式
- 27. 的Mac OS X應用程序:AppleScript的 「打開」 命令返回 「缺失值」,而不是打開的文檔
- 28. itunes.apple.com如何在OS X上打開應用程序iTunes?
- 29. 如何從WPF應用程序打開MFC對話框?
- 30. 從對話框中打開文檔
是的,這是一個不錯的節省我的一天。但是,你怎麼做「然後顯示文件對話框」的東西?在applicationShouldOpenUntitledFile裏面?如何? –
標準文件打開面板可以使用'NSDocumentController.openDocument(_ :)'顯示。 –