我正在为我的应用程序编写首选项,将其注册为在登录时启动(使用LSSharedItemList
API)。一切正常,我的应用程序会根据复选框状态切换它在用户登录项中的存在。现在我想解决另一个问题,当用户实际从Accounts.prefPane
.
使用 Notification Watcher,我看到分布式通知中心发送com.apple.loginItemsListDidChnage
(注意错字)通知,因此我使用相同的选择器(即IBAction
)为该通知添加观察者,该选择器处理首选项窗口中的复选框(实际上,[un] 从 / 注册应用程序登录项目)。
当我尝试比较将我的应用程序切换为登录项的操作的发件人类别时,会出现问题。使用[sender description]
并且[sender class]
我看到NSConcreteNotification
了类,但是一旦我尝试对其进行比较-代码中断说没有定义这样的类:
if ([[sender class] isEqualTo:[NSConcreteNotification class]]) {
...
}
如果我尝试将发件人与NSNotification
- 进行比较,则流程不会落入该分支。
也许我缺少一些关于 Mac OS X 中分布式通知的基本知识?
运行 Mac OS X 10.6.2