0

我似乎无法在 Mountain Lion 中找到在代码中成功打开 ical 的方法。

我宁愿不使用applescript,而使用可可。让我知道是否有我缺少的 api。

目前我只使用:

[[NSWorkspace sharedWorkspace] launchApplication:@"iCal"];

谢谢!!!

4

2 回答 2

0

实际上我使用了以下代码:

-(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 后就停止了工作。一年多前我提交了一个错误,但没有得到苹果的可用答案。

于 2014-04-17T21:39:43.523 回答
0

如果您只想启动应用程序,那么这基本上就是您正在做的事情。文档中有一些进一步的信息,这里有一篇不错的文章。

但是,如果您想在代码中集成日历,也许您应该使用Event Kit Framework

于 2013-01-23T05:20:59.377 回答