Edited at

(Swift) Macbookでフタを閉じた瞬間、開いた瞬間にイベントを受け取る

More than 3 years have passed since last update.


Macbookのフタ閉じた時のイベントって取れるの?

気になったので調べてみました。

簡単にコピペで使えるように、コードを貼ってみます。

ObjCのかたは、下の参考リンクのところからジャンプ先を見てみてください。

まだ実際、軽くしか動作確認できていないので、もしかしたらちゃんと動かないかもです。


ViewController.swift

import Cocoa

class ViewController: NSViewController {

override func viewDidLoad() {
super.viewDidLoad()

// 通知を受け取ることができるように設定する
let notificationCenter = NSWorkspace.sharedWorkspace().notificationCenter;
notificationCenter.addObserver(
self,
selector: #selector(receiveSleepNote(_:)),
name: NSWorkspaceWillSleepNotification,
object: nil
)
notificationCenter.addObserver(
self,
selector: #selector(receiveWakeNote(_:)),
name: NSWorkspaceDidWakeNotification,
object: nil
)
}

// スリープされた瞬間に通知を受け取る
func receiveSleepNote(n:NSNotification) {
print("receiveSleepNote: ", n.name)
}

// スリープ解除された瞬間に通知を受け取る
func receiveWakeNote(n:NSNotification) {
print("receiveWakeNote: ", n.name)
}

}



参考URL

https://developer.apple.com/library/mac/qa/qa1340/_index.html