Ответ на событие 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" (в устаревшей библиотеке).