我似乎无法在 Mountain Lion 中找到在代码中成功打开 ical 的方法。
我宁愿不使用applescript,而使用可可。让我知道是否有我缺少的 api。
目前我只使用:
[[NSWorkspace sharedWorkspace] launchApplication:@"iCal"];
谢谢!!!
我似乎无法在 Mountain Lion 中找到在代码中成功打开 ical 的方法。
我宁愿不使用applescript,而使用可可。让我知道是否有我缺少的 api。
目前我只使用:
[[NSWorkspace sharedWorkspace] launchApplication:@"iCal"];
谢谢!!!
实际上我使用了以下代码:
-(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 后就停止了工作。一年多前我提交了一个错误,但没有得到苹果的可用答案。
如果您只想启动应用程序,那么这基本上就是您正在做的事情。文档中有一些进一步的信息,这里有一篇不错的文章。
但是,如果您想在代码中集成日历,也许您应该使用Event Kit Framework