5

アプリ同士で通信しようとしています。

最初のアプリケーションでApple Eventsを処理しています

NSAppleEventManager.shared().setEventHandler(self, andSelector: #selector(handleGetURLEvent), forEventClass: AEEventClass(kInternetEventClass), andEventID: AEEventID(kAEGetURL))

func handleGetURLEvent(_ event: NSAppleEventDescriptor, withReplyEvent replyEvent: NSAppleEventDescriptor)

2 番目のアプリでは、NSAppleEventDescriptorオブジェクトを作成しています

let test = NSAppleEventDescriptor(string: "test")
let descriptor = NSAppleEventDescriptor(eventClass: AEEventClass(kInternetEventClass), eventID: AEEventID(kAEGetURL), targetDescriptor: nil, returnID: AEReturnID(kAutoGenerateReturnID), transactionID: AETransactionID(kAnyTransactionID))
descriptor.setParam(test, forKeyword: keyDirectObject)

今、NSWorkspace私は最初のアプリを起動しています

NSWorkspace.shared().launchApplication(at: myAppUrl, options: .default, configuration: [NSWorkspaceLaunchConfigurationAppleEvent:descriptor])

すべて問題ありません。関数handleGetURLEventは呼び出されますが、...replyEvent.desciptorTypeまた、2 番目のアプリにkAENullEventどのようにアクセスするのかわかりません。replyEvent

この解決策には何か問題があると思います。

私の質問は、他のアプリにデータを送信してデータを取り戻すにはどうすればよいですか?

4

0 に答える 0