Ответ на событие Apple в Какао

Я регистрирую обработчик событий Apple с помощью NSAppleEventManager:

[[NSAppleEventManager sharedAppleEventManager]
    setEventHandler:self andSelector:@selector(handleGetURLEvent:withReplyEvent:)
      forEventClass:kInternetEventClass andEventID:kAEGetURL];

Мой метод-обработчик, конечно, получит событие и событие ответа:

- (void) handleGetURLEvent:(NSAppleEventDescriptor *)event withReplyEvent:(NSAppleEventDescriptor *)replyEvent {
    //Open this URL; reply if we can't
}

Итак, если мне нужно ответить с ошибкой, указывающей, что я не смог каким-то образом открыть этот URL, как мне использовать replyEvent сделать это?

1 ответ

Я перевел следующее из процедурного API старого стиля C, описанного в унаследованном документе Apple "Руководство по программированию событий Apple", на Cocoa:

if ([replyEvent descriptorType] != typeNull)
{
    [replyEvent setParamDescriptor:[NSAppleEventDescriptor descriptorWithInt32:someStatusCode] forKeyword:keyErrorNumber];
    [replyEvent setParamDescriptor:[NSAppleEventDescriptor descriptorWithString:someErrorString] forKeyword:keyErrorString];
}

См. "Возвращение информации об ошибках" в "Руководстве по программированию событий Apple" (в устаревшей библиотеке).

Другие вопросы по тегам