将数据发送到另一个应用程序并从中获取响应

时间:2017-09-05 11:25:10

标签: swift macos nsappleeventdescriptor

我试图互相沟通应用程序。

我使用

在我的第一个应用程序中处理Apple Events
NSAppleEventManager.shared().setEventHandler(self, andSelector: #selector(handleGetURLEvent), forEventClass: AEEventClass(kInternetEventClass), andEventID: AEEventID(kAEGetURL))

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

在第二个应用中,我创建了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.desciptorTypekAENullEvent我也不知道如何获得replyEvent我的第二个应用程序。

我认为这个解决方案有问题。

所以我的问题是如何将数据简单地发送到我的其他应用程序并获取一些数据?

0 个答案:

没有答案