Mountain Lionで、コードでicalを正常に開く方法を見つけることができないようです。
アップルスクリプトを使わず、ココアを使いたいです。不足しているAPIがあるかどうか教えてください。
現在私は使用しています:
[[NSWorkspace sharedWorkspace] launchApplication:@"iCal"];
ありがとうございました!!!
Mountain Lionで、コードでicalを正常に開く方法を見つけることができないようです。
アップルスクリプトを使わず、ココアを使いたいです。不足しているAPIがあるかどうか教えてください。
現在私は使用しています:
[[NSWorkspace sharedWorkspace] launchApplication:@"iCal"];
ありがとうございました!!!
アプリケーションを起動したいだけなら、それは基本的にあなたがしていることです。docs にさらに詳しい情報があり、ここに素敵な記事があります。
ただし、コードでカレンダーと統合したい場合は、Event Kit Frameworkを使用する必要があります。
実際には、次のコードを使用しました。
-(void)show:(NSString*)eventUid InCalendar:(NSString*)calUid {
iCalApplication *iCal = [SBApplication applicationWithBundleIdentifier:(@"com.apple.iCal")];
[iCal activate];
SBElementArray *sbCalendars = [iCal calendars];
if(sbCalendars != nil && [sbCalendars objectWithID:calUid] != nil) {
iCalCalendar *sbCalendar = [sbCalendars objectWithID:calUid];
if([sbCalendar events] != nil){
iCalEvent *sbCalEvent = [[sbCalendar events] objectWithID:eventUid];
if(sbCalEvent != nil){
NSLog(@"%@", sbCalEvent);
[sbCalEvent show];
}
}
}
}
これはかなり長い間機能していましたが、Sandbox を導入してから機能しなくなりました。1 年以上前にバグを報告しましたが、Apple から有用な回答が得られませんでした。