第一次運行後,我需要在主窗口顯示後不久顯示錶單對話框。如果我在init中執行它或從nib喚醒它,它似乎不能正確工作(如果我在init方法中執行,則表單顯示爲從主窗口分離的窗口)。我想我必須在父窗口顯示後顯示工作表。我有一個appcontroller類,它有一個窗口指針。所以我想我需要註冊爲委託或窗口的東西?並實施一些方法來接收該呼叫? 謝謝,NSWindow的可可事件是什麼,它告訴NSWindow現在在第一次運行後顯示?
回答
applicationDidFinishLaunching:
是您的切入點。它在應用程序完成設置之後,但在用戶有機會與之交互之前發送給您的應用程序委託。
沒有可靠的事件,通知或委託方法調用。預計你的代碼負責顯示窗口,所以它應該已經知道窗口何時顯示。
您是否依賴於Interface Builder中設置的Laible屬性中的Visible?如果是這樣,你用什麼來加載NIB?希望是一個窗口控制器。在這種情況下,您應該調用-window
方法來加載NIB並獲取窗口。結果窗口引用是您將傳遞給開始工作表的方法的內容。
如果在啓動時不依賴Visible,您使用什麼代碼來顯示窗口?例如,在窗口控制器上調用-showWindow:
?所以,讓代碼在這之後顯示錶單。
我有'可見在發射檢查'所以是我依靠那個。關於我正在做什麼來加載窗口Nib,沒有什麼,如果你只是在Xcode中創建一個新的可可項目並運行它,就會出現一個窗口。筆尖自動加載並在AppDelgate類的窗口指針。此外,我已經可以在窗口上創建帶有按鈕的工作表,但我想在顯示窗口後顯示它。 @Josh Caswell的回答對我很有幫助 – Ahmed 2013-02-12 05:58:30
@Ahmed:在MainMenu筆尖上打開「Visible at launch」打開窗口可以達到最簡單的目的,但如果您需要自定義這個窗口,那麼是時候移動窗口到一個單獨的筆尖,並使窗口控制器擁有它,併成爲窗口的代表。我通常無條件地馬上做,而不是稍後再移動它。 – 2013-02-12 06:33:02
@PeterHosey感謝您的建議非常有幫助 – Ahmed 2013-02-12 23:23:01
- 1. 是否可以在CALayer上顯示NSWindow?
- 2. 爲什麼我的NSWindow第一次只接收mouseOver事件?
- 3. NSWindow事件在kCGDesktopWindowLevel
- 4. 可可 - NSWindow動畫何時顯示?
- 5. 可可/ OSX - NSWindow standardWindowButton的行爲出現異常複製一次又一次
- 6. 顯示NSWindow
- 7. 可可 - 動畫NSWindow
- 8. WebView不顯示在NSWindow
- 9. 顯示NSWindow在全屏
- 10. 在NSWindow處理事件
- 11. 可可在特定屏幕上顯示NSWindow
- 12. NSWindow顯示和setViewsNeedDisplay
- 13. NSWindow沒有顯示?
- 14. 關閉事件NSWindow
- 15. NSWindow鼠標事件
- 16. 撤消輔助NSWindow,可可
- 17. 無法顯示我的NSWindow
- 18. NSWindow顯示的建議
- 19. 隱藏/顯示NSWindow中的所有對象 - 可可
- 20. 在NSWindow上懸停的顯示按鈕
- 21. 您可以強制NSWindow加載,即在屏幕上顯示它之前嗎?
- 22. 是否可以爲一個NSWindow實現多重NSUndoManager?
- 23. Modal NSWindow再次變爲可見後的通知
- 24. NSWindow示例
- 25. 可可:獲取NSWindow的相對位置
- 26. 把一個透明的NSWindow永久地放在另一個NSWindow
- 27. 爲什麼函數在第一次運行之後纔在本地可用?
- 28. 如何檢查NSWindow是否可見
- 29. NSWindow全屏顯示,但顯示碼頭
- 30. 任何人都可以告訴我爲什麼顯示「運行時錯誤」?
謝謝,這是一個 – Ahmed 2013-02-12 06:02:06
值得強調的是,這是每個應用程序,而不是每個窗口。如果關閉並重新打開該窗口,則不會再獲得'applicationDidFinishLaunching:',因爲該操作只發生一次,並且已經發生。如果你需要做任何你需要做的事情,任何時候顯示* window *,不僅當應用程序完成啓動時,你需要一些東西成爲窗口的委託並響應正確的委託消息。 – 2013-02-12 06:35:34
@艾哈邁德,彼得霍西的警告是非常正確的。我的回答僅適用於應用啓動時第一次顯示窗口。 – 2013-02-12 07:24:11