在閱讀一些示例代碼時,請注意,在選擇「創建基於文檔的應用程序」選項時,在IB中設置主窗口標題不起作用。該窗口將以「無標題」作爲其標題出來。我們需要重寫 - (NSString *)displayName {}在MyDocument:NSDocument中來設置窗口標題。只是希望xcode的一些專家能夠解釋爲什麼會這樣。也就是說,當項目最初生成時,當我們檢查「創建基於文檔的應用程序」選項時,添加到系統中的是什麼?當在Xcode中選擇「創建基於文檔的應用程序」選項時會發生什麼?
11
A
回答
13
瞭解當您從Xcode中的模板創建項目時,Xcode並不會真正生成任何代碼。當然,它可能會填寫你的姓名,項目名稱等幾個空白。但是你得到的基本上是你選擇的項目類型的罐裝啓動代碼。檢查「基於文檔」選項時添加的內容是爲您的應用程序定製了一個合理名稱的NSDocument子類。
看看蘋果的「人機界面指南」,如this,你會發現文檔窗口應該根據它們顯示的文檔標題。因此,基於文檔的應用程序的默認行爲是將標題設置爲文檔文件的文件名。
最後,查看的參考頁面,你會發現你所看到的行爲是NSDocument類的一部分。特別是,如果您查看-displayName方法,您將找到有關如何正確定製窗口標題的信息。
2
窗口控制器可以自由地覆蓋給予IB窗口的標題。在基於非文檔的應用程序中,默認的窗口控制器將使用窗口的標題,因爲它們沒有理由不這樣做。但是,當文檔創建它的窗口控制器時,它會告訴他們它們已連接到它。然後他們查看文檔的displayName屬性並更新窗口標題作爲響應。默認實現只是簡單地將窗口的標題設置爲與文檔相同,在文件保存之前,該文檔是無標題的。
相關問題
- 1. 當使用jQuery選擇選項時div css會發生變化
- 2. 基於視圖的應用程序中的選項卡欄 - XCode
- 3. 右鍵單擊XCode時,「顯示文檔」選項中發生了什麼?
- 4. 當電話中斷應用程序時,android應用程序會發生什麼?
- 5. 當我從列表中選擇項目時,爲什麼不會發生'ListBox1_SelectedIndexChanged'?
- 6. 當我選擇工作表時會發生什麼事件?
- 7. 當沒有找到jQuery選擇器時會發生什麼?
- 8. 什麼是Xcode中基於文本的API選項
- 9. 當我關閉選項卡時,JS ServiceWorker會發生什麼
- 10. Xcode 4.2中基於Windows的應用程序發生了什麼變化?
- 11. 選擇基於創建ILogger
- 12. 什麼時候Java是基於Web的應用程序的正確選擇
- 13. 當應用程序崩潰時會發生什麼?
- 14. 當Android應用程序「被殺」時會發生什麼
- 15. 當應用程序被刪除時PendingIntents會發生什麼?
- 16. 當應用程序從後臺打開時會發生什麼?
- 17. 當Android應用程序強行關閉時會發生什麼
- 18. 當Android應用程序正在更新時,內部存儲和共享首選項會發生什麼變化?
- 19. 當程序運行時發生事件時會發生什麼
- 20. 爲應用程序後端創建什麼選擇
- 21. 當大多數應用程序的「文檔」不是基於文件時,NSDocument是正確的選擇嗎?
- 22. 當使用Ajax選擇一個選項時發生的事件
- 23. 基於文本的選項選擇器
- 24. 方法文檔選擇基於Yii中
- 25. Xcode 5中基於文檔的Mac應用程序
- 26. 在Xcode 5中構建一個基於文檔的應用程序
- 27. 對於1view /場景到2view /場景應用程序,我應該在Xcode中選擇什麼應用程序?
- 28. 當您在Azure AD中選擇一個國家時會發生什麼?B2C
- 29. 當選擇返回null(JQuery的)會發生什麼
- 30. 當我在使用PHP的選擇框中選擇任何選項時創建一個會話?
感謝您的詳細解釋... – Stanley 2011-03-08 03:38:02