Electronのアプリケーションでは、window-all-closed
イベントが発生したときに、macOSではapp.quit()
を呼ばない理由は、macOSの一般的なアプリケーションの動作と一致させるためです⁴。
macOSのアプリケーションは、通常、ユーザーが明示的にCmd + Qを押すまでアクティブな状態を維持します⁴。そのため、すべてのウィンドウが閉じられてもアプリケーション自体は終了せず、メニューバーから再度ウィンドウを開くことが可能です。
一方、WindowsやLinuxでは、すべてのウィンドウが閉じられるとアプリケーションが終了します¹。そのため、window-all-closed
イベントが発生したときにapp.quit()
を呼び出すことで、これらのOSの一般的な動作を模倣します¹。
したがって、macOSと他のOSで異なる動作をするためのこの設定は、それぞれのOSのユーザーインターフェースガイドラインに準拠するためのものです⁴。¹。²。³。
ソース: Bing との会話 2024/4/6 (1) macos - How to quit Electron app on Mac? - Stack Overflow. https://stackoverflow.com/questions/44316306/how-to-quit-electron-app-on-mac. (2) app | Electron. https://www.electronjs.org/ja/docs/latest/api/app. (3) Electron の終了イベントまわりの整理 #JavaScript - Qiita. https://qiita.com/hoto17296/items/72d3526bef332f9ce027. (4) For electron app in macOS, when is app.quit () invoked?. https://stackoverflow.com/questions/58822323/for-electron-app-in-macos-when-is-app-quit-invoked.