Есть ли способ активировать действие, когда заставка Mac OS X активируется или когда она переходит в режим сна (желательно с использованием какао)?Обнаруживать, когда заставка активируется с помощью Cocoa
ответ
Вы можете зарегистрироваться для различных распространенных уведомлений - на 10.6, я вижу com.apple.screenIsLocked/screenIsUnlocked и com.apple.screensaver.didstart/willstop/didstop. (В старых версиях Mac OS X могут отсутствовать все эти уведомления.) Вы можете наблюдать за уведомлениями, как они происходят с Notification Watcher.
См. Также this answer.
Быстрый сниппет с помощью скор:
NSDistributedNotificationCenter.defaultCenter().addObserver(
self,
selector: "screenIsLocked:",
name: "com.apple.screenIsLocked",
object: nil)
с самим собой быть наблюдателем вы хотите зарегистрировать, селектор является обработчик функций, имя является именем уведомления, и объект дополнительного отправителя уведомления, где, если указанный только уведомления от этот отправитель передается наблюдателю.
Также обратите внимание, что вы можете передать ноль в качестве имени и получить всю отправленную отправку уведомлений, а не только указанную.
PS: есть много уведомлений, на которые вы можете подписаться, поэтому убедитесь, что вы знаете, к какому объекту они участвуют, чтобы иметь возможность использовать их. Например, проверьте NSDistributedNotificationCenter, NSNotificationCenter и NSWorkspace.
Возможный дубликат http://stackoverflow.com/questions/1419531/mac-screensaver-start-event –