EKEventEditViewController en anglais et calendrier invisible...
LeChatNoir
Membre, Modérateur
Salut,
J'ai 2 problèmes pour le prix d'un /angry.gif' class='bbc_emoticon' alt='>:(' /> (non, finalement, plus qu'un :-))
Ca fonctionne car mes évènements sont créés avec ce calendrier. Mais dans l'appli Agenda, impossible de voir ce calendrier... Du coup, impossible de voir mes évènements...
Pourtant, error est bien vide...
J'ai 2 problèmes pour le prix d'un /angry.gif' class='bbc_emoticon' alt='>:(' /> (non, finalement, plus qu'un :-))
- mon EKEventEditViewController est en anglais... J'ai bien mis fr en native dev région mais rien n'y fait. Ca reste en anglais. Idem pour mes boutons back, done, edit... J'ai l'impression qu'il ne détecte nul part que mon appli est en fr. Et à part le dev région dans le plist, je vois pas où lui indiquer...
=> Je me répond alors même que j'ai pas encore fini de poster ^^ Ca m'énervait ce truc de débutant alors j'ai cherché partout et j'ai enfin trouvé... Ayant utilisé un template Master-Detail, il y avait par défaut une "localization" en "english". Donc ajout d'une en french et suppression de celle in english et hop, on n'en parle plus.
- Mon appli créer un calendrier à elle pour que l'utilisateur puisse retrouver facilement tous ses RDV liés à mon appli. Je créer donc un calendrier avec ce bout de code :
<br />
EKSource *localSource = nil;<br />
for (EKSource *source in es.sources)<br />
if (source.sourceType == EKSourceTypeLocal)<br />
{<br />
localSource = source;<br />
break;<br />
}<br />
myCal = [EKCalendar calendarWithEventStore:es];<br />
myCal.title = @"Mon Calendrier";<br />
myCal.source = localSource;<br />
NSError * error;<br />
[es saveCalendar:myCal commit:YES error:&error];<br />
et je récupère l'id avec un myCal.calendarIdentifier.
Ca fonctionne car mes évènements sont créés avec ce calendrier. Mais dans l'appli Agenda, impossible de voir ce calendrier... Du coup, impossible de voir mes évènements...
Pourtant, error est bien vide...
J'oublie qqchose ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
C'est sioux comme truc. J'avais iCloud d'activé pour les calendriers. Et dans ce cas là , on ne voit pas les calendriers locaux...
Du coup, j'imagine que je dois tester cette préférence (en admettant qu'on puisse l'avoir qquepart) et que j'ajoute mon calendrier soit aux locaux, soit au cloud selon la pref...
M'en vais aller voir la doc iCloud :-)
Il faut tout simplement laisser le choix à l'utilisateur... EKEventStore -sources te donne la liste des stores, à toi de le parser comme il faut et le donner à l'utilisateur pour savoir où enregistrer ton évènement.
EKEventEditViewController ne permet pas ce choix...
Et je pense que la plupart des utilisateurs ne savent même pas qu'il y a des calendriers locaux et des calendriers dans le cloud. Tout du moins, moi, je pensais qu'on pouvait voir les 2.
Encore une étrangeté qui m'échappe...
J'ai pas fait mon profil psy mais je dois être UL moi :-) Comme Utilisateur Lambda ^^
Quoi qu'il en soit, le choix fait par ce contrôleur me semble modifié par ton code non ?
Mais là dedans, on n'y voit pas les calendriers locaux à partir du moment où iCloud est activé. De même dans Agenda d'ailleurs. Si iCloud activé, on voit juste les calendrier iCloud et Anniversaires. Pas les locaux qui deviennent invisibles (et inexistant par la meme occasion).
Du coup, j'ai modifié mon code comme ça :
De cette manière, si je trouve du iCloud, je le privilégie. Sinon, je prends du local.
C'est un peu "boite noire" cette histoire.
Etonnant que la doc des calendriers n'y fasse pas allusion...
A moins que ce ne soit un bug iOS 6 ?
Je dois dire que je ne comprend pas du tout l'intérêt de ta boucle for. Tu peux m'expliquer ?
Concernant iCloud / Local c'est normal, c'est fait pour être l'agenda de l'utilisateur, quand tu as un compte CalDAV tu ne veux surtout plus utiliser le local qui n'est pas synchronisé.
Pourquoi la récupérer puisque EKEventEditViewController le gère pour toi ?