macos - 想要在 OS X (10.8-9) 中报告日历闹钟

标签 macos cocoa calendar eventkit alerts

我想自己报告生成警报的日历事件,但这里有很多关于“日历”、“事件”、“通知”和“警报”的模糊术语。

我所说的提醒类型是您在 iCal/Calendars 中设置的类型,它会自动弹出对话框、播放声音、发送电子邮件等,而不是提醒。

我已经有了使用 EventKit 和 NSCalendar 来获取当前日历、抓取特定日期之间的所有事件并从中提取内容的代码。因此,我可以手动执行所有这些操作,检查适当的事件,在特定时间触发自己的警报,睡一会儿,再次检查,等等。

但是根据我所做的研究,我认为有一种方法可以在日历闹钟响起时获取事件通知(就像在操作系统事件中一样......再次存在歧义)。我找到了创建警报 (EKAlarm) 的方法,但没有办法坐下来等待警报。我还发现 NSUserNotificationCenter 似乎可能会参与其中,但我还没有发现它是否确实如此,如果是,又是如何实现的。

需要明确的是,我希望拦截日历警报,而不是提醒。如果警报也被转发到它们通常的目的地,那也很好(我不贪心!)。

谁能帮我弄清楚这些部分是如何组合在一起的(或者是否有可能做到)?

最佳答案

我还没有研究这么多,但如果有一种方法可以让您在日历守护程序和通知服务器之间跳转,我会感到非常惊讶。这不是苹果通常提供的那种钩子(Hook)。但我的经验是使用较旧的日历 API(从 10.6 开始),而不是 EventKit。

关于macos - 想要在 OS X (10.8-9) 中报告日历闹钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21079765/

相关文章:

objective-c - Mac 操作系统 cocoa : Draw a simple pixel on a canvas

javascript - 刷新页面时,日历中的日期设置回当前日期

api - Trello:如何使用卡片列表更改日期生成事件报告

java - 无法在 Mac 上安装 Glassfish。它表示指定的目录不是有效的 GlassFish 安装

cocoa - 网页 View 空白但内容在那里

Mac OSX 中的 Python ctags 子进程调用

objective-c - 像 iTunes 11 一样绘制 NSTableView 交替行

calendar - 通过 Office 365 REST API 获取 "cancelled"事件

ruby - OpenSSL::SSL::SSLContext SNI servername_cb 不工作

mongodb - 在mac中安装mongo shell