スマホの乗り換えを検討中の方へ

少しでも料金を安くしたい方
ワイモバイルUQモバイルでの運用がおすすめです。

ギガ不足に悩んでいる方
ソフトバンクでの運用がおすすめです。

開発

Swift ウィンドウを閉じた際にDockに残さないMacアプリの作成方法

Macアプリのウィンドウを閉じたのにDockに残る。
閉じたのに何で残るのっ!

今回はこの問題を解決するためのアプリの作成方法について、お伝えしたいと思う。

プロジェクトの作成

まずはプロジェクトの作成から。

プロジェクトの作成方法は以下の通り。
※プロジェクトの作成方法なんて知ってるよ!って方は実装まで読み飛ばすことを推奨する。

1.Xcodeを起動する。
2.Create a new Xcode project を押す。

3. macOS を選択する。
4. Cocoa App を選択し Next を押す。

5.任意のアプリ名を入力し Next を押す。

6.左上にある起動ボタン(▷)を押す。

7.こんな感じの何もないウィンドウが表示されれば、プロジェクトの作成成功。
これでプロジェクトの作成は終了。

実装

それでは、いよいよ実装って言っても非常に簡単。

AppDelegate.swiftを開き、以下のコードを貼り付ける。

/// 最後のウィンドウを閉じた際にアプリを終了する
/// ※今回追加するコード
///
/// - Parameter sender: アプリのオブジェクト
/// - Returns: アプリを終了する場合:true, 終了しない場合:false
func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
    return true
}

ちなみに実装後のコード全体はこんな感じ。

余談だが、Xcodeでは optionキーと⌘と/ を同時押しで、関数コメントの雛形が作成できる

動作確認

それでは、動作確認。

1.Xcode の左上にある起動ボタン(▷)を押し、作成したアプリを起動する。
2.Windowの閉じるボタン(❌ボタン)を押す。
3.Dockにアプリが残っていないことを確認する。

閉じてもこのように残っていたアプリが

このように残っていなければOK。

おわりに

今回この処理の存在に辿り着いたのは、本業の関係である。
アプリの最小化ができないって不具合の対応依頼を受けた。

しかし、これが先輩の素晴らしい実装によって、発生していた不具合であったため、衝撃を受けた。
詳細は書けないが、SwiftのViewが消えた時に呼び出される viewDidDisappear という関数がある。

ここで、画面遷移の条件以外はアプリを強制終了するという処理が書かれていた。
この viewDidDisappear という関数は、もちろん最小化の時にも呼び出されるので、強制終了する。

何でこの実装をしたのか、先輩に聞いてみると。。。
アプリのウィンドウを閉じるとDockに残るのを残さないで欲しいとの要望があったので、実装したとのこと。
要望は達成しているからいいでしょって。

心の中で様々な感情が込み上げてきたが、そっと心にしまって、今回の方法にたどり着いた。
はぁ。。。。。。。

おすすめ情報

【スマホの乗り換えを検討中の方へ】
少しでも料金を安くしたい方
ワイモバイルUQモバイルでの運用がおすすめです。

 ギガ不足に悩んでいる方
ソフトバンクでの運用がおすすめです。


【iPhone 11】おすすめ はソフトバンク?Apple Store?

続きを見る


1

iPhoneは種類が多すぎて何が違うのかが分からない。どれを選べば良いのか分からない。そんな方のためにiPhone 7 ...

2

新しくパソコンが欲しいのだけど、WindowsとMacのどちらを買った方が良いのだろう。。。 というか、私の場合はどちら ...

3

iPhoneXRを使い続けて気づけば、約10ヶ月も経ちました。 最初は重くて重くて重くて、大きくて非常に使いづらかったの ...

4

応用情報技術者の資格は、持っていないが情報処理安全確保支援士の試験に1発で合格することができた。 今回はその時に使用した ...

5

iPhoneXRスマホ代が高いから、格安SIMに移行しよう。 そんな方々に一部私のやらかしを含めて格安SIMに移行する際 ...

Copyright© ペンギンがMacとiPhoneを手に入れた , 2019 All Rights Reserved.