Заставить приложение Какао отвечать на простую команду AppleScript

Я пытаюсь добавить тривиальную поддержку AppleScript в приложение Какао. Приложение периодически выполняет проверку, и я просто хочу, чтобы оно выполняло ее по запросу.

Я пытаюсь следовать примеру Apple SimpleScriptingVerbs .

Я создал подклассы NSScriptCommand следующим образом:

Заголовок:

#import 

@interface rdrNotifierUpdateCommand : NSScriptCommand {

}
-(id)performDefaultImplementation;
@end

Реализация:

#import "rdrNotifierUpdateCommand.h"
#import "rdrNotifierAppDelegate.h"

@implementation rdrNotifierUpdateCommand

-(id)performDefaultImplementation {
  NSLog(@"Works at last");
  [((rdrNotifierAppDelegate *)[[NSApplication sharedApplication] delegate])
   checkForNewItems];  // This just fires the timer
  return nil;
}
@end

Мой .sdef файл выглядит следующим образом (и проблема, похоже, существует, но я не могу ее найти):




    
    
        
            
        
    

Info.plist настроен соответствующим образом.

Но когда я пытаюсь запустить следующий сценарий в редакторе AppleScript:

tell application "rdrNotifier"
    do update
end tell

Я получаю сообщение об ошибке, что переменная «обновление» не определена.

Я могу открыть словарь для своего приложения из редактора AppleScript (т. Е. Он успешно зарегистрирован).

Изменить: найдено решение

Проблема действительно была в файле sdef : я был без указания, что приложение может отвечать на команду. Мое окончательное определение выглядит следующим образом (код Obj-C без изменений):




  
  
    
      
    
    
      
      
        
        
      
    
  

Любые улучшения / советы / критические замечания по-прежнему приветствуются.

6
задан Raúl Pedroche 15 May 2011 в 08:49
поделиться