Я пишу настройки для моего приложения, которое регистрирует его для запуска при входе в систему (используя LSSharedItemList
API).Все идет хорошо, и мое приложение переключает свое присутствие в элементах входа пользователя при статусе флажка.Теперь я хочу решить еще одну проблему, когда пользователь фактически удаляет приложение из «Элементов входа в систему» в Accounts.prefPane
.
. С помощью наблюдателя уведомлений я вижу, что распределенный центр уведомлений отправляет уведомление com.apple.loginItemsListDidChnage
(не забывайте о опечатке)Я добавляю наблюдателя для этого уведомления с тем же селектором (который IBAction
), который обрабатывает флажок в окне настроек (которое фактически [un] регистрирует приложение из / в элементы входа в систему).
Проблема возникает, когдаЯ пытаюсь сравнить класс отправителя действия, которое переключает мое приложение как элемент входа в систему.Используя [sender description]
и [sender class]
, я вижу NSConcreteNotification
класс, но как только я пытаюсь сделать сравнение по нему - код ломается, говоря, что такой класс не определен:
if ([[sender class] isEqualTo:[NSConcreteNotification class]]) {
...
}
Если я пытаюсьсравнить отправителя с NSNotification
- тогда поток не попадает в эту ветку.
Может быть, мне не хватает некоторых важных знаний о распределенных уведомлениях в Mac OS X?
Работает Mac OS X10.6.2