我正在尝试相互交流应用程序。
我在我的第一个应用程序中处理 Apple 事件
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.desciptorType
也不kAENullEvent
知道如何replyEvent
进入我的第二个应用程序。
我想这个解决方案有问题。
所以我的问题是我怎样才能简单地将数据发送到我的其他应用程序并取回一些数据?