[我正在尝试从我在Xcode 11.2.1中使用Swift 5开发的Mac应用程序中向MacOS日历添加日历事件。
对于初学者来说,我在App Sandbox中检查了Calendar权利。
我正在尝试提示这样的权限:
import EventKit
@IBAction func clickAddToCalendar(_ sender: NSButton){
let eventStore = EKEventStore()
eventStore.requestAccess(to: .event){ granted, error in
print(granted) // returns false
print("----")
print(error) // returns nil
}
}
...但是granted
每次都是false
,我从没看到弹出窗口来授予权限。在macOS上是否需要这样的访问提示?看起来是这样,因为当我尝试像这样直接添加日历事件时:
let event = EKEvent(eventStore: eventStore)
event.title = "My Event"
event.startDate = Date()
event.endDate = Date()
event.calendar = eventStore.defaultCalendarForNewEvents
do {
try eventStore.save(event, span: .thisEvent)
} catch let error as NSError {
print(error)
}
...我得到一个错误:
serviceName =“ com.apple.CalendarAgent.database”; ...使用userInfo字典返回错误NSCocoaErrorDomain(134070){问题=“请求失败,权限不足”}
有人这样做可以给我一些指导吗?谢谢!
您是否有用于隐私-日历使用说明的info.plist项目?
EventKit必需,请参见https://developer.apple.com/documentation/eventkit/accessing_the_event_store