Ich muss aus meiner App heraus Einträge in der App "Erinnerungen" erstellen. Hier ein Basis-Code, mit dem das funktioniert. Natürlich ausbaufähig.
1. Die info.plist anpassen
2. Eine Klasse erzeugen oder eine vorhandene ergänzen. Ich habe eine Klasse für alles, was mit Kalendern zu tun hat. Der Reminder ist auch ein Kalender und die EKReminder ist von der EKCalendarItem abgeleitet.
Alles anzeigen
Wenn sich keine Einträge erstellen lassen, das Sandboxing prüfen.
Hinweis: die Prüfung nach den Zugriffsberechtigungen ist ab macOS 14.0 (Zeile 5)
Wie gesagt: das ist ein Basis-Code und natürlich ausbaufähig. Mir reicht es aber, dass nur schnell die eine Erinnerung erstellt wird.
Genaueres dann hier:
developer.apple.com/documentat…ting_events_and_reminders
Viel Spaß mit dem Schnipsel. Wer hierzu interessante Erweiterungen hat, würde es mich freuen, hier eure Vorschläge und Ideen zu lesen.
Bei Fragen hierzu, bitte in den anderen Foren.
1. Die info.plist anpassen
2. Eine Klasse erzeugen oder eine vorhandene ergänzen. Ich habe eine Klasse für alles, was mit Kalendern zu tun hat. Der Reminder ist auch ein Kalender und die EKReminder ist von der EKCalendarItem abgeleitet.
Quellcode
- class CalendarClass {
- let eventStore : EKEventStore = EKEventStore()
- func createReminder(title:String, startDate:Date, endDate:Date? = nil, note:String? = "") {
- // Hier prüfen wir, ob wir Zugriff auf die Erinnerungen haben
- eventStore.requestFullAccessToReminders { (granted, error) in
- // wenn ja, dann weiter
- if granted && error == nil {
- // erst einmal das Startdatum in die dateComponents zerlegen
- let calendar = Calendar.current
- let sdComp = calendar.dateComponents([.year, .month, .day, .hour, .minute], from: startDate)
- // den Reminder erstellen
- let reminder:EKReminder = EKReminder(eventStore: self.eventStore)
- reminder.title = title
- reminder.dueDateComponents = DateComponents(
- year: sdComp.year,
- month: (sdComp.month ?? 1),
- day: sdComp.day
- )
- reminder.notes = note
- // Hier holen wir uns den Standardkalender (s. Einstellungen von Erinnerungen)
- reminder.calendar = self.eventStore.defaultCalendarForNewReminders()
- // Hier definiere ich die vierteljährliche Wiederholung der Erinnerung
- reminder.recurrenceRules = [EKRecurrenceRule(recurrenceWith: .monthly, interval: 3, end: nil)]
- // jetzt den Eintrag speichern
- do {
- try self.eventStore.save(reminder, commit: true)
- } catch let error as NSError {
- print("failed to save event with error : \(error)")
- }
- }
- }
- }
- }
Hinweis: die Prüfung nach den Zugriffsberechtigungen ist ab macOS 14.0 (Zeile 5)
Wie gesagt: das ist ein Basis-Code und natürlich ausbaufähig. Mir reicht es aber, dass nur schnell die eine Erinnerung erstellt wird.
Genaueres dann hier:
developer.apple.com/documentat…ting_events_and_reminders
Viel Spaß mit dem Schnipsel. Wer hierzu interessante Erweiterungen hat, würde es mich freuen, hier eure Vorschläge und Ideen zu lesen.
Bei Fragen hierzu, bitte in den anderen Foren.