2011-11-15 25 views
1

使用與次要首選項窗口一起工作的簡單應用程序,我發現了一個我無法理解的行爲。如何使用快捷鍵「Command + W」關閉每個可見窗口

當我打開首選項窗口時,如果我按Cmd + W我只關閉主窗口。 這是一個標準的行爲?實現關閉每個窗口的最佳方式是哪一種?

+0

你在說Command + Option + W。你確定這個關鍵組合不起作用嗎? –

+0

@FrancisMcGrew我在說「菜單」「文件」下的「Command + W」。以Xcode爲例...當您按Cmd + W打開首選項時,只關閉首選項窗口...我需要關閉所有窗口。這可能嗎 ? – MatterGoal

回答

7

[[NSApp windows] makeObjectsPerformSelector:@selector(close)];

是一個綱領性的方式來關閉所有窗口,但真的不是好的設計,因爲用戶不希望命令+ W來關閉一個應用程序的所有窗口。這就是Command + Option + W的用途。

如果您有基於文檔的應用程序,可以將您的輔助窗口更改爲NSPanel的實例,然後檢查「文檔模式」屬性。這樣當文檔窗口關閉時,輔助窗口也會關閉。

如果它不是一個基於文檔的應用程序,你可以檢查窗口的「隱藏關閉」屬性,當應用程序進入後臺時它將隱藏窗口。

除此之外,如果您想將兩個窗口「綁定」在一起,我認爲您必須設置NSWindowDelegate並手動維護其相對可見性狀態。那有意義嗎?

相關問題