我想自己报告生成警报的日历事件,但这里有很多关于“日历”、“事件”、“通知”和“警报”的模糊术语。
我所说的提醒类型是您在 iCal/Calendars 中设置的类型,它会自动弹出对话框、播放声音、发送电子邮件等,而不是提醒。
我已经有了使用 EventKit 和 NSCalendar
来获取当前日历、抓取特定日期之间的所有事件并从中提取内容的代码。因此,我可以手动执行所有这些操作,检查适当的事件,在特定时间触发自己的警报,睡一会儿,再次检查,等等。
但是根据我所做的研究,我认为有一种方法可以在日历闹钟响起时获取事件通知(就像在操作系统事件中一样......再次存在歧义)。我找到了创建警报 (EKAlarm
) 的方法,但没有办法坐下来等待警报。我还发现 NSUserNotificationCenter
似乎可能会参与其中,但我还没有发现它是否确实如此,如果是,又是如何实现的。
需要明确的是,我希望拦截日历警报,而不是提醒。如果警报也被转发到它们通常的目的地,那也很好(我不贪心!)。
谁能帮我弄清楚这些部分是如何组合在一起的(或者是否有可能做到)?
最佳答案
我还没有研究这么多,但如果有一种方法可以让您在日历守护程序和通知服务器之间跳转,我会感到非常惊讶。这不是苹果通常提供的那种钩子(Hook)。但我的经验是使用较旧的日历 API(从 10.6 开始),而不是 EventKit。
关于macos - 想要在 OS X (10.8-9) 中报告日历闹钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21079765/