Sto scrivendo un'app che si occupa di calendari. Nell'applicazione sto visualizzando un elenco di tutti i calendari disponibili che l'utente può abilitare o disabilitare. Sono non utilizzando il framework EventKitUI
per gli scopi del mio design e dell'interfaccia utente.Come decidere se il "calendario" EKCalendar predefinito può essere nascosto?
Ottengo un elenco ordinato di calendari eseguendo il polling della proprietà calendars
di un oggetto EKEventStore
. Sul mio dispositivo, tuttavia, c'è un oggetto EKCalendar
nell'elenco che è non mostrato dallo EKEventKitUI
. Questa è una descrizione dell'oggetto nel debugger:
EKCalendar <0xcea6b60> {title = Agenda; type = Local; allowsModify = YES; color = #711A76;}
Io corro il mio iPhone in olandese, che è il motivo per cui il titolo è 'Agenda' e non 'calendario', ma se si esegue l'iPhone in inglese questo è quello che vedrai. Sembra che questo sia il calendario predefinito di iOS, ma dal momento che ho tutti i miei calendari impostati per la sincronizzazione con iCloud, è disabilitato per le app di calendario integrate. Voglio disabilitarlo anche nella mia app, ma non so come.
Dall'aspetto the properties of EKCalendar
Non riesco a distinguerne uno per decidere quale calendario dovrei "nascondere". C'è la proprietà type
che è "Locale" per questo calendario predefinito, ma se qualcuno non sta usando iCloud immagino che tutti i calendari siano di un tipo locale. subscription
non lo è neanche, né è allowsContentModifications
. Ho visto examples of people hiding the default calendar based on it's title, ma come potete vedere, il titolo è localizzato e quindi molto poco pratico, che sembra sbagliato.
Qual è il trucco per decidere quale calendario è il calendario predefinito e se nasconderlo o meno, al fine di confrontare l'elenco dei calendari visualizzati dall'app normale di iCal/Calendar?
EDIT: Anche se la questione è stata contrassegnata come risposta, la risposta contiene un grande "no, non è possibile". Ho risolto questo problema per i miei utenti aggiungendo un interruttore del pannello delle impostazioni per "nascondere i calendari locali", ma è una soluzione molto, molto poco elegante.
Sì questo è quello che sto facendo ora, ma questo si sente anche in modo sbagliato! – epologee