2010-05-02 3 views
4

Есть ли способ активировать действие, когда заставка Mac OS X активируется или когда она переходит в режим сна (желательно с использованием какао)?Обнаруживать, когда заставка активируется с помощью Cocoa

+1

Возможный дубликат http://stackoverflow.com/questions/1419531/mac-screensaver-start-event –

ответ

7

Вы можете зарегистрироваться для различных распространенных уведомлений - на 10.6, я вижу com.apple.screenIsLocked/screenIsUnlocked и com.apple.screensaver.didstart/willstop/didstop. (В старых версиях Mac OS X могут отсутствовать все эти уведомления.) Вы можете наблюдать за уведомлениями, как они происходят с Notification Watcher.

См. Также this answer.

1

Быстрый сниппет с помощью скор:

NSDistributedNotificationCenter.defaultCenter().addObserver(
     self, 
     selector: "screenIsLocked:", 
     name: "com.apple.screenIsLocked", 
     object: nil) 

с самим собой быть наблюдателем вы хотите зарегистрировать, селектор является обработчик функций, имя является именем уведомления, и объект дополнительного отправителя уведомления, где, если указанный только уведомления от этот отправитель передается наблюдателю.

Также обратите внимание, что вы можете передать ноль в качестве имени и получить всю отправленную отправку уведомлений, а не только указанную.

PS: есть много уведомлений, на которые вы можете подписаться, поэтому убедитесь, что вы знаете, к какому объекту они участвуют, чтобы иметь возможность использовать их. Например, проверьте NSDistributedNotificationCenter, NSNotificationCenter и NSWorkspace.

 Смежные вопросы

  • Нет связанных вопросов^_^