我正在构建一个 Mac 应用程序,它应该在日历中添加提醒。构建没有错误也没有警告,但当应用程序启动时,我收到以下错误:“提醒失败,错误访问此事件存储未经授权。”
我在网上搜索了在 Mac 上请求访问日历的正确方法,但没有找到任何方法。
我尝试将以下示例从 ios 翻译到 mac,但失败了: https: //github.com/andrewcbancroft/EventTracker/tree/ask-for-permission
这是我的代码:
import Cocoa
import EventKit
@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate, NSTableViewDataSource, NSTableViewDelegate
{
@IBOutlet weak var window: NSWindow!
var eventStore = EKEventStore()
var calendars: [EKCalendar]?
func applicationDidFinishLaunching(_ aNotification: Notification)
{
let reminder = EKReminder(eventStore: self.eventStore)
reminder.title = "Go to the store and buy milk"
reminder.calendar = eventStore.defaultCalendarForNewReminders()
do
{
try eventStore.save(reminder,
commit: true)
} catch let error {
print("Reminder failed with error \(error.localizedDescription)")
}
}
func applicationWillTerminate(_ aNotification: Notification)
{
// Insert code here to tear down your application
}
}
Run Code Online (Sandbox Code Playgroud)
感谢您的关注。
requestAccess(to:completion:例如,您必须调用事件存储
let eventStore = EKEventStore()
eventStore.requestAccess(to: .reminder) { (granted, error) in
if let error = error {
print(error)
return
}
if granted {
// go on managing reminders
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1499 次 |
| 最近记录: |