eventkit - 如何在 macOS 应用程序中使用 Swift 中的 EventKit 获取日历权限
问题描述
我正在尝试从我在 Xcode 11.2.1 中使用 Swift 5 开发的 Mac 应用程序将日历事件添加到 macOS 日历。
对于初学者,我在App Sandbox中检查了日历权利。
我正在尝试提示这样的权限:
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"; ...返回错误 NSCocoaErrorDomain(134070) 与 userInfo 字典 { 问题 =“请求失败,权限不足”}
有没有人这样做可以给我一些指示?谢谢!
解决方案
您是否有隐私 - 日历使用说明的 info.plist 项目?
EventKit 所需的请参阅https://developer.apple.com/documentation/eventkit/accessing_the_event_store
推荐阅读
- c - 我无法理解他的 typedef 指针用法,有人可以解释一下吗?
- python-3.x - 在 matplotlib 图中切割 X 和 Y 标签
- django - TypeError: 'MediaDefiningClass' 对象不可迭代 | django admin 中的summernote 集成(已解决)
- uwp - 是否可以通过 UWP 应用程序关闭带有 Windows 10 IoT 的 Raspberry Pi
- git - 带有本地 .git 存储库的 vscode 说“活动更改太多”
- python-3.x - 如果发现其他空字符串,如何遍历 Beautful soup 标签元素列表并获取特定文本?
- java - 保存列表并在 Java 中访问它的正确方法
- python - 如何从控制台用 Python 打印的内容中获取输入?
- javascript - amchart 适配器中的目标参数是什么
- node.js - 我应该怎么做才能防止多次向亚马逊 S3 请求同一商品?浏览器缓存?还有什么?