Single WindowなOSX Appで全てのWindowが閉じたときの挙動でリジェクト
移転しました →
MacのアプリケーションはWindowを赤ボタンとか⌘W
で閉じてもアプリケーション自体が終了しないことが多いが、その場合メインウィンドウを再表示できるようにしておかないとMac App Storeに申請した際にリジェクトを食らってしまう(食らった)。
1つめの対応方法として、Dockアイコンをクリックしたときにメインウィンドウを再表示するコードをAppDelegate
に書く。
func applicationShouldHandleReopen(sender: NSApplication, hasVisibleWindows flag: Bool) -> Bool { if flag == false && sender.windows.count > 0 { sender.windows[0].makeKeyAndOrderFront(self) } return true }
もしくは全てのウィンドウが閉じたときアプリケーションを終了させてしまうというのもOKらしい。これは推測だけど、申請したのがシングルウィンドウなアプリケーションだったからこの対処方法でもいいよと言ってくれたんじゃないかと思う。ドキュメントベースの場合はウィンドウが閉じることって頻繁にあるだろうから多分だめなんじゃないかな。
その場合はAppDelegate
にこんなコードを書く。
func applicationShouldTerminateAfterLastWindowClosed(sender: NSApplication) -> Bool { return true }
今回は単機能のアプリだったので後者で対応することにしてみた。