我试图互相沟通应用程序。
我使用
在我的第一个应用程序中处理Apple EventsNSAppleEventManager.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.desciptorType
是kAENullEvent
我也不知道如何获得replyEvent
我的第二个应用程序。
我认为这个解决方案有问题。
所以我的问题是如何将数据简单地发送到我的其他应用程序并获取一些数据?