5

我正在使用 NSAppleEventManager 注册一个 Apple 事件处理程序:

[[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来做到这一点?

4

1 回答 1

8

我已将 Apple 遗留文档“Apple Events Programming Guide”中描述的旧式 C 过程 API 中的以下内容翻译为 Cocoa:

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

请参阅“Apple 事件编程指南”(在 Legacy 库中)中的“返回错误信息”。

于 2013-03-13T13:21:00.950 回答